gpt4 book ai didi

python - 无法更改数据框中的数据类型

转载 作者:行者123 更新时间:2023-11-28 17:34:28 25 4
gpt4 key购买 nike

我有一个数据框 df 如下所示:

        birth_year  person
0 1980 0
1 1981 1
2 1982 2
3 1983 3
4 1984 4

birth_year 列看起来像数字,但是当我检查数据类型时df['birth_year'].dtype 结果为 dtype('O')

所以我认为它实际上可能是一个字符串,并尝试使用 df['birth_year'].astype('int') 将其转换为数字,但出现错误:

    UnicodeEncodeError: 'decimal' codec can't encode characters in position 
0-3: invalid decimal Unicode string

经过一些谷歌搜索后,我开始明白(可能是错误的)其中似乎有一些不可见的字符。当访问值 df['birth_year'][0] 时,我得到的值是 1980L,而不是 1980

那么数据类型到底是什么,如何将其转换为整数?我在某处读到,如果返回的数据类型是dtype('O'),通常意味着它是一个字符串,但似乎并非如此。

最佳答案

您可以使用 df['birth_year'].astype(int) 正常转换,但似乎您有无效值,使用 df = df.convert_objects(convert_numeric=True) 会将无效值强制转换为 NaN,这可能是您想要的,也可能不是您想要的,因为这会将 dtype 更改为 float64 而不是 int64

最好查看无效的字符串值以确定它们无法转换的原因。

因此您可以执行 df[df.convert_objects(convert_numeric).isnull()] 来获取具有无效 'birth_year' 值的行

关于python - 无法更改数据框中的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com