从csv读取或写入csv时如何保留数据帧的数据类型“列表”

时间:2019-06-04 06:35:12

标签: python-3.x pandas dataframe export-to-csv dtype

我想在将其写入csv文件时保留作为列表的数据框的列的数据类型。阅读时,我必须使用lis格式的值。

我尝试过

@XmlElement(name = "A")
private String a;

@XmlElement(name = "B")
private String b;

但它说

pd.read_csv('namesss.csv',dtype = {'letters' = list})

这是一个例子

 dtype <class 'list'> not understood
df = pd.DataFrame({'name': ['jack','johnny','stokes'],
                  'letters':[['j','k'],['j','y'],['s','s']]})
print(type(df['letters'][0]))
df
<class 'list'>
name    letters
0   jack    [j, k]
1   johnny  [j, y]
2   stokes  [s, s]
df.to_csv('namesss.csv')
print(type(pd.read_csv('namesss.csv')['letters'][0]))

1 个答案:

答案 0 :(得分:1)

您可以使用ast module将字符串放入列表中:

import ast
df2 = pd.read_csv('namesss.csv')
df2['letters'] =[ast.literal_eval(x) for x in df2['letters'] ]

In [1] : print(type(df2['letters'][0]))
Out[1] : <class 'list'>