将包含列表的DataFrame导出到Excel

袋鼠

因此,我尝试使用“ to_excel”方法将Pandas DataFrame导出到.xlsx文件。我已经搜索了SO,但没有发现任何似乎可以完全回答这个问题的问题。问题在于数据框内的各个元素本身就是列表,让我说明一下:

假设我们有以下数据框:

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(',')

但这显然很荒谬,我想相信有更好的方法。有谁知道将包含列表的DataFrame保存到excel文件的更有效的方法,或者至少更有效地执行上述操作?

埃德·楚姆

不确定是否有效,但更干净的方法是调用apply' ,',join作为func传递

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章