因此,我尝试使用“ 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] 删除。
我来说两句