我试图将我的数据框转换为dict,以便使用这些dict实例化某些类对象。根据{{3}}文档,我需要的规则是orient ='records'。 但是,我注意到当列名是整数或仅包含整数的字符串时,它的行为不符合我的预期:
import pandas as pd
df = pd.DataFrame({'a':[1,2,3], 15:[4,5,6], '302':[5,6,7]})
mydict = df.to_dict(orient='records')
print(mydict)
返回
[{'_2':4, 'a':1, '_0':5},{'_2':5, 'a':2, '_0':6}, {'_2':6, 'a':3, '_0':7}]
我找到了解决此问题的方法,方法是:
mydict = list(df.to_dict(orient='index').values())
但是我不知道为什么会这样。我使用的是python 3.5
和熊猫0.24
。
有什么想法吗?
答案 0 :(得分:2)
这是在熊猫0.24.0中引入的错误,并在0.24.1中修复。参见https://github.com/pandas-dev/pandas/issues/24940