当字典包含使用pd.DataFrame.append()添加的int元素时,数据类型会发生更改



当使用panda的append函数将字典添加到空DataFrame时,int类型的元素将被转换并存储在DataFrame中。

如下面的代码所示,向任何数据类型的转换似乎都取决于字典中的其他元素。

如果没有这种行为,我们如何将int类型存储为int类型?之后我是否必须转换DataFrame的数据类型?

df = pd.DataFrame(columns=["int","float"])
print(df.append({"int":1, "float":0.5},ignore_index=True).dtypes)
"""
int      float64
float    float64
dtype: object
"""
df = pd.DataFrame(columns=["str","int","float"])
print(df.append({"str":"test", "int":1, "float":0.5},ignore_index=True).dtypes)
"""
str       object
int       object
float    float64
dtype: object
"""

您可以在将所有内容附加到数据帧的末尾使用infer_objects来更正数据类型。

此外,您可以使用concat而不是append,后者具有更多的功能

In [47]: df.append({"str":"test", "int":1, "float":0.5},ignore_index=True).infer_objects().dtypes                                                                                                                                                                                                  
Out[47]: 
str       object
int        int64
float    float64
dtype: object

相关内容

  • 没有找到相关文章

最新更新