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

时间:2017-12-17 18:02:06

标签: python pandas csv

我正在尝试将pandas数据帧保存为.csv文件。目前我的代码如下所示:

with open('File.csv', 'a') as f:
        df.to_csv(f, header=False)

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

感谢您的帮助, 维维亚娜

3 个答案:

答案 0 :(得分:3)

您的代码应该正常运行。我无法重现所描述的行为。

这里有更多" pandaic"版本:

WHERE item_size IS NULL OR item_size = 'S';

PS注意df.to_csv('File.csv', header=False, mode='a') (追加)参数......

<强>更新

How to get rid of ellipsis when displaying / printing a DF:

mode='a'

答案 1 :(得分:1)

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

示例:

lst =  ['Hello!','I','am', 'Pandas User','.']
strng = ' '.join(lst)
print (strng)

希望这对你有所帮助。

答案 2 :(得分:1)

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

如果您将数据框称为df_temp,则可以使用:

store = pd.HDFStore('store.h5')
store['df'] = df_temp

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

store = pd.HDFStore('store.h5')
df_temp_read = store['df']

您可以查看此answer。我还应该提到,泡菜对我不起作用,因为从文件中读取时我丢失了列名。也许我做错了什么,但除此之外,如果您打算以其他python版本读取文件,则pickle可能会导致兼容性问题。