pandas.DataFrame.to_dict行为

时间:2019-02-05 09:38:18

标签: python pandas

我试图将我的数据框转换为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。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是在熊猫0.24.0中引入的错误,并在0.24.1中修复。参见https://github.com/pandas-dev/pandas/issues/24940