gpt4 book ai didi

python - 将 '?' 替换为 Nan 或零

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:52 25 4
gpt4 key购买 nike

我有一个数据列:

Power:
0 130
1 165
2 150
3 150
4 ?
5 198
6 220
7 215
8 225
9 ?
10 170

我想替换每个 '?' Nan 或零。

我试过:

data['Power'].str.replace('?', 0).astype(float)
data['Power'].str.replace('^[^\d]*', '').astype(float)
data['Power'].replace(r'\s+', np.nan, regex=True)
data['Power'].convert_objects(convert_numeric=True)
data['Power'].replace(regex=True,inplace=True,to_replace=r'\D',value=r'')

但这些都不起作用!

有些产生错误 could not convert string to float 而有些没有产生任何错误但没有改变 '?'。

最佳答案

如果只需要将所有非数值替换为 NaN,请使用 to_numeric :

data.Power = pd.to_numeric(data.Power, errors='coerce')
print (data)
Power
0 130.0
1 165.0
2 150.0
3 150.0
4 NaN
5 198.0
6 220.0
7 215.0
8 225.0
9 NaN
10 170.0

如果需要 0 然后添加 fillna强制转换为 int:

data.Power = pd.to_numeric(data.Power, errors='coerce').fillna(0).astype(int)
print (data)
Power
0 130
1 165
2 150
3 150
4 0
5 198
6 220
7 215
8 225
9 0
10 170

关于python - 将 '?' 替换为 Nan 或零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41016281/

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