将包含长列表的熊猫df保存为csv文件

Viv*_*ane 7 python csv pandas

我正在尝试将熊猫数据框另存为.csv文件。目前,我的代码如下所示:

with open('File.csv', 'a') as f:
        df.to_csv(f, header=False)
Run Code Online (Sandbox Code Playgroud)

保存有效,但问题是我的数据框中的列表只是压缩为[first,second,...,last],而中间的所有条目都被丢弃了。如果仅查看原始数据框,则所有条目都在那里。有什么方法可以将列表转换为包含所有元素的字符串(str(df)也丢弃中间元素),或者如何将完整的numpy数组保存在csv表的单元格中?

谢谢您的帮助,薇薇安

Cro*_*opy 5

我在保存数据帧时也遇到了问题。我有一个数据框,其中一些列由列表作为其元素组成。当我使用 保存 datfarmedf.to_csv然后使用从磁盘读取它时df.read_csv,列表和数组变成了一串字符。因此[1,2,3]转化为'[1,2,3]'. 当我使用 HDF5 格式时,问题就解决了。

如果你的数据框被调用df_temp,那么你可以使用:

store = pd.HDFStore('store.h5')
store['df'] = df_temp
Run Code Online (Sandbox Code Playgroud)

以 HDF5 格式保存数据帧,您可以使用以下命令读取它:

store = pd.HDFStore('store.h5')
df_temp_read = store['df']
Run Code Online (Sandbox Code Playgroud)

你可以看看这个答案。我还应该提到泡菜对我不起作用,因为我在读取文件时丢失了列名。也许我做错了什么,但除此之外,如果您打算在不同的 Python 版本中读取文件,pickle 可能会导致兼容性问题。


小智 1

您可以使用 join 方法转换列表中存在的元素。

例子:

lst =  ['Hello!','I','am', 'Pandas User','.']
strng = ' '.join(lst)
print (strng)
Run Code Online (Sandbox Code Playgroud)

希望这对你有帮助。