我正在尝试将pandas数据帧保存为.csv文件。目前我的代码如下所示:
with open('File.csv', 'a') as f:
df.to_csv(f, header=False)
保存有效,但问题是我的数据框中的列表只是压缩为[first,second,...,last],并且中间的所有条目都被丢弃。如果我只看原始数据帧,那么所有条目都在那里。有什么方法可以将列表转换为包含所有元素的字符串(str(df)也丢弃中间元素)或者如何在csv表的单元格中保存完整的numpy数组?
感谢您的帮助, 维维亚娜
答案 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可能会导致兼容性问题。