gpt4 book ai didi

Python - 使用 "astype"的 Pandas 列类型转换不起作用

转载 作者:行者123 更新时间:2023-12-04 13:21:26 25 4
gpt4 key购买 nike

这是 DataFrame 的前 5 行(格式不佳,但您可以看到其中大部分值都可以转换为数字)

df.head()
ID Overall Acceleration Aggression Agility Balance Ball control Composure Crossing Curve Dribbling Finishing Free kick accuracy GK diving GK handling GK kicking GK positioning GK reflexes Heading accuracy Interceptions Jumping Long passing Long shots Marking Penalties Positioning Reactions Short passing Shot power Sliding tackle Sprint speed Stamina Standing tackle Strength Vision Volleys
0 20801 94 89 63 89 63 93 95 85 81 91 94 76 7 11 15 14 11 88 29 95 77 92 22 85 95 96 83 94 23 91 92 31 80 85 88
1 158023 93 92 48 90 95 95 96 77 89 97 95 90 6 11 15 14 8 71 22 68 87 88 13 74 93 95 88 85 26 87 73 28 59 90 85
2 190871 92 94 56 96 82 95 92 75 81 96 89 84 9 9 15 15 11 62 36 61 75 77 21 81 90 88 81 80 33 90 78 24 53 80 83
3 176580 92 88 78 86 60 91 83 77 86 86 94 84 27 25 31 33 37 77 41 69 64 86 30 85 92 93 83 87 38 77 89 45 80 84 88
4 167495 92 58 29 52 35 48 70 15 14 30 13 11 91 90 95 91 89 25 30 78 59 16 10 47 12 85 55 25 11 61 44 10 83 70 11

以下是所有类型的说明:
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 18085 entries, 0 to 18084
Data columns (total 36 columns):
ID 18085 non-null int64
Overall 18085 non-null int64
Acceleration 18085 non-null object
Aggression 18085 non-null object
Agility 18085 non-null object
Balance 18085 non-null object
Ball control 18085 non-null object
Composure 18085 non-null object
Crossing 18085 non-null object
Curve 18085 non-null object
Dribbling 18085 non-null object
Finishing 18085 non-null object
Free kick accuracy 18085 non-null object
...
dtypes: int64(2), object(34)
memory usage: 5.1+ MB

这是我将对象类型转换为浮点数的尝试。
for column in full:
tmp = pd.Series(column)
column = tmp.astype("float64", errors="ignore")

之后所有相关类型仍然是“对象”。
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 18085 entries, 0 to 18084
Data columns (total 36 columns):
ID 18085 non-null int64
Overall 18085 non-null int64
Acceleration 18085 non-null object
Aggression 18085 non-null object
Agility 18085 non-null object
Balance 18085 non-null object
Ball control 18085 non-null object
Composure 18085 non-null object
Crossing 18085 non-null object
Curve 18085 non-null object
Dribbling 18085 non-null object
Finishing 18085 non-null object
Free kick accuracy 18085 non-null object
...
dtypes: int64(2), object(34)
memory usage: 5.1+ MB

谁能看到我做错了什么?我已经从这个网站和其他网站尝试了许多不同的方法,但我不明白为什么这些类型没有被改变。任何帮助表示赞赏。谢谢你。

编辑:如果这可能与此有关,我正在 Kaggle.com IPython 笔记本中执行此操作。

最佳答案

将解决方案从评论迁移到答案。感谢@Wen。

df=df.apply(pd.to_numeric, errors='coerce')

关于Python - 使用 "astype"的 Pandas 列类型转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52240694/

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