2017-05-05 105 views
4

这里是我的例子:熊猫read_csv摆脱封闭双引号

我第一次创建数据帧,并将其保存到文件

import pandas as pd 
df = pd.DataFrame({'col_1':[['a','b','s'], 23423]}) 
df.to_csv(r'C:\test.csv') 

然后df.col_1[0]回报['a','b','s']列表

后来我读了它来自文件:

df_1 = pd.read_csv(r'C:\test.csv', quoting = 3, quotechar = '"') 

Now df_1['col_1'][0]返回"['a' 's']"一个字符串。

我想回到榜单。我与不同read_csv设置试验,但至今没有运气

+3

CSV报告转换不是为了保存复杂的数据结构,而仅仅是表格式的数字/文本数据。 –

+0

@ juanpa.arrivillaga谢谢你,我通常会使用泡菜,但是因为泡菜而忘记了,所以我不得不使用csv。 – user1700890

回答

6

你不会得到列表后面没有一点工作

使用literal_eval到列表

import ast 

conv = dict(col_1=ast.literal_eval) 
pd.read_csv(r'C:\test.csv', index_col=0, converters=conv).loc[0, 'col_1'] 

['a', 'b', 'c'] 
+0

太棒了! ast模块看起来非常有用。但它是python文档中描述的最后一个,这是可惜的。 –