[英]Reading a CSV file with differing number of instances of a particular separator into a Pandas Dataframe
[英]Reading a csv file with a list of elements into pandas dataframe
我有一个CSV文件,格式如下:
index A B C
ind1 [1,2,3][3,4,5][6,7,8]
ind2 [1,4,3,4,8][9,1,2,1,4][3,7,3,5,9]
ind3 [2,8][1,8][1,5]
其中每个单元格(比如A,ind1)都有一个列表[1,2,3]。 当我将其导入数据帧时:
df=pd.read_csv('filename.csv')
我得到一个与csv格式相同的数据帧,但是,单个单元格中的列表是作为字符串导入的。
假设我索引ind1列的第一个元素A df.iloc[0]['A']
给我'['
而不是1
基本上它是将[1,2,3]
作为一个长字符串而不是将其作为列表读取。
如何将所有单元格中的值转换为列表?
有趣的问题。 如果您将使用pandas,我将首先使用literal_eval编码列表。
import pandas as pd from ast import literal_eval df = pd.read_csv("filename.csv")
您可以使用pandas applymap将literal_eval函数应用于每个单元格。
df[['A', 'B', 'C']] = df[['A', 'B', 'C']].applymap(literal_eval)
现在,您已经提取了列表,您可以像普通列表一样对它们做出反应。 例如,这将从第一个列表中提供第一个元素:
df.iloc[0]['A'][0]
我希望这会对你有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.