gpt4 book ai didi

python - Pandas 在带有数字和字符串的列中应用小数

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:28 24 4
gpt4 key购买 nike

我有一列包含数字和字符串。例如:

Result:
Failed
8.05
9
7

如何更改数据以显示两位小数,即如下所示?

Result:
Failed
8.05
9.00
7.00

我正在尝试以下方法,但它不起作用。感谢您的帮助!

df['Result'] =  df['Result'].apply('{:.2f}'.format)

最佳答案

我认为需要创建 bool 掩码:

#numeric with strings
df = pd.DataFrame({'Result':['Failed',8.05,9,7]})

mask = pd.to_numeric(df['Result'], errors='coerce').notnull()
df.loc[mask, 'Result'] = df.loc[mask, 'Result'].apply('{:.2f}'.format)
print (df)
0 Failed
1 8.05
2 9.00
3 7.00

如果所有字符串都需要首先转换为float:

df = pd.DataFrame({'Result':['Failed','8.05','9','7']})

mask = pd.to_numeric(df['Result'], errors='coerce').notnull()
df.loc[mask, 'Result'] = df.loc[mask, 'Result'].astype(float).apply('{:.2f}'.format)
print (df)
Result
0 Failed
1 8.05
2 9.00
3 7.00

关于python - Pandas 在带有数字和字符串的列中应用小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52039703/

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