【发布时间】:2020-04-07 03:30:30
【问题描述】:
df1 = pd.DataFrame({'x':'ble','y':[[1,2]]})
df2 = pd.DataFrame({'x':'bla','y':[np.array([1,2])]})
df1.to_csv('df1.csv', sep='\t')
df2.to_csv('df2.csv', sep='\t')
df1.csv 将保留逗号
x y
ble [1, 2]
但df2.csv 不会
x y
bla [1 2]
然后将数据帧连接起来 (df3.csv)
x y
ble [1,2]
bla [1 2]
我稍后在 python 中阅读了df3.csv 并将y 转换回带有ast._literal_eval 的列表,但这不适用于第二行。我可以以某种方式告诉to_csv 包含逗号,无论它是 python 列表还是 numpy 数组?
【问题讨论】:
-
to_csv将str表示写入文件。对于具有 '[1,2]' 的列表,对于 ndarray '[1 2]'。加载时,两者都是字符串。因此csv不是保存此数据帧的好格式。 -
如果你需要一个文本文件,那么你也可以使用
df.to_json(fn)`` and then read it back withpd.read_json(fn)``` CSV 并不是真正为嵌套数据结构设计的。
标签: python arrays pandas numpy