将包含列表的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