pandas pd.concat是否将我的所有列转换为对象?[已关闭]

oxcyiej7  于 2023-03-16  发布在  其他
关注(0)|答案(1)|浏览(159)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4小时前关门了。
Improve this question
我是python的新手,正在做一个学校的项目,我试图将一行concat到我的 Dataframe 中,但是当我使用pd.concat时,不知何故我所有的列都变成了对象。
这里我只是加载数据并检查dtype

df=pd.read_csv('living-planet-index.csv', delimiter=';')

df.dtypes

该函数返回:

Region            object
Year               int64
Average Index    float64
Upper Index      float64
Lower Index      float64
dtype: object

然后,我连接所需的行:

africa2=pd.DataFrame({'Region':'Africa', 'Year':'2018', 'Average Index':'34.445875', 'Upper Index': '73.433580', 'Lower Index': '15.991854'}, index=[48])

df=pd.concat([df.iloc[:48], africa2, df.iloc[48:]])

df.types

我本以为.dtypes会返回完全相同的值,但它却返回了以下内容:

Region            object
Year              object
Average Index     object
Upper Index       object
Lower Index       object
dtype: object

我做错什么了吗?我无法想象pd.concat只是因为它应该这么做。

iq0todco

iq0todco1#

好的,pd.concat把所有的列转换成对象,你可以在document的例子中看到,dtype总是object,你可以用**df.astype()**把你的列转换回它们的dtype。

相关问题