首页 > 解决方案 > Pandas to_dict 类型转换是特定于上下文的

问题描述

我发现对于不同数据帧中相同 dtype 的列,pandas 数据帧类 to_dict 方法的输出是不同的。我有一个数据框,其中所有列的类型均为 int64。此数据帧上的 to_dict 将打印 int64 类型的值。在另一个数据框中有一列 int64 类型和另一列不同类型,在 to_dict 之后的 int64 列值表示为 int 类型。有没有解释为什么这种方法应该产生一个值的表示,该值取决于同一数据帧中其他值的类型?

import pandas as pd

df1 = pd.DataFrame([{'a': 1, 'b': 'str'}])
df2 = pd.DataFrame([{'a': 1, 'b': 2}])

l1 = df1.to_dict(orient='records')
l2 = df2.to_dict(orient='records')

for i in l1:
    for k in i:
        print(type(i[k]))


for i in l2:
    for k in i:
        print(type(i[k]))

输出:

<class 'int'>
<class 'str'>
<class 'numpy.int64'>
<class 'numpy.int64'>

理想情况下,我想要一些一致性。不管那可能是什么。提前感谢您的任何见解!

标签: pandas

解决方案


推荐阅读