我有一个数据帧,它将列表嵌套为列值,如下所示:
col1 col2
0 [1, 1] [a, b, c]
1 [0, 0, 0] [d, e, f]
当我将数据帧转换为csv时,我会得到这样的东西:
col1 col2
[1 1] , [a b c]
[0 0 0] , [d e f]
基本上,嵌套列表中的逗号会消失,当我从csv读回数据帧时,我不会得到逗号。我如何维护逗号并将csv保存为这样的内容:
col1 col2
[1,1] , [a, b, c]
[0, 0, 0] , [d, e, f]
p.S:我想要一个熊猫解决方案来创建csv
我认为没有列表,而是数组,所以如果删除对csv逗号的写入:
df = pd.DataFrame({'col1':[np.array([1,1]), np.array([0,0,0])]})
print (df)
col1
0 [1, 1]
1 [0, 0, 0]
df.to_csv('file.csv', index=False)
df = pd.read_csv('file.csv')
print (df)
col1
0 [1 1]
1 [0 0 0]
可能的解决方案是将数组转换为列表:
df = pd.DataFrame({'col1':[np.array([1,1]), np.array([0,0,0])]})
df = df.applymap(list)
print (df)
col1
0 [1, 1]
1 [0, 0, 0]
df.to_csv('file.csv', index=False)
df = pd.read_csv('file.csv')
print (df)
col1
0 [1, 1]
1 [0, 0, 0]
列表的字符串表示中的最后一个列表使用:
import ast
df = df.applymap(ast.literal_eval)
print (df)
col1
0 [1, 1]
1 [0, 0, 0]