将包含列表的DataFrame导出到Excel
所以我正在尝试使用'to_excel'方法将一个Pandas DataFrame导出到一个.xlsx文件。 我已经search过,没有发现任何似乎完全回答的问题。 问题是数据框中的单个元素是自己的列表,让我来说明一下:
假设我们有以下数据框:
data = [[['a','b','c']],[['a']],[[]],[['a', 'b']],[['a']]] df = pd.DataFrame(data=data) df.to_excel('data.xlsx')
'to_excel'调用导致以下错误:
TypeError: Unsupported type <class 'list'> in write()
我已经从事这个问题了,做了以下几点:
for key in df: for i in df[key].index: df[key].loc[i] = ' ,'.join(df[key].loc[i]) df.to_excel('data.xlsx')
从而访问我的新程序中的文件,如下所示:
newDF = pd.read_excel('data.xlsx') for key in newDF: for i in newDF[key].index: newDF[key].loc[i] = str(newDF[key].loc[i]).split(',')
但显然这感觉很荒谬,我想相信还有更好的办法。 有没有人知道更有效的方式来保存包含列表到Excel文件的数据框,或至less是更有效地执行上述操作?
不确定有效,但一个更清洁的方法是调用apply
和传递' ,',join
作为函数调用:
In [75]: data = [[['a','b','c']],[['a']],[[]],[['a', 'b']],[['a']]] df = pd.DataFrame(data=data) df[0].apply(' ,'.join) Out[75]: 0 a ,b ,c 1 a 2 3 a ,b 4 a Name: 0, dtype: object
除了存储列表,因为数据元素是有问题的,应该避免IMO