将列表的字符串表示形式转换为数据框列中的列表

时间:2019-07-01 06:56:05

标签: python python-3.x csv dataframe

我有这样的cvs文件:

number    file
  1       [file1,file2]
  2       [file1]
  3       [file3,file4]
file的数据类型为

list。但是,当我再次读取该文件时,得到的列file的数据类型是str。输出是这样的:

>>> df = pd.read_csv('file.csv')
>>> for col in df:
>>>    print (df[col].apply(type))
<class 'int'>
<class 'int'>
<class 'int'>
<class 'str'>
<class 'str'>
....

但是,我想将该值作为列表读取。我已经尝试过此[https://stackoverflow.com/a/1894296/10907221]。但是我不能将其应用于数据框。有人可以帮我解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:2)

如果您确实希望每个数字包含多个文件,则应将输入内容转换为:

number    file
  1       file1
  1       file2
  2       file1
  3       file3
  3       file4

然后将它们选择为列表,您可以执行以下操作:

df[df["number"] == 1]

或您想要的任何数字。