gpt4 book ai didi

python - 四舍五入数据框列时处理字符串值

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

我有一个数据框 (df) 看起来像

   DATE_OF_BIRTH           AGE
0 1974-03-28 43.0095412
1 NOT KNOWN NOT KNOWN
2 1970-11-27 46.3419843
3 1974-05-09 42.8944168
4 1985-03-14 32.0474122

我想将 AGE 列四舍五入到小数点后 3 位,这样所需的输出将如下所示:

   DATE_OF_BIRTH        AGE
0 1974-03-28 43.010
1 NOT KNOWN NOT KNOWN
2 1970-11-27 46.342
3 1974-05-09 42.894
4 1985-03-14 32.047

我试过用

df['AGE'] = df['AGE'].round(3) 

但是当遇到字符串(如NOT KNOWN)时,我得到错误:

TypeError: can't multiply sequence by non-int of type 'float' 

如何在舍入数据框列时处理字符串?

最佳答案

我建议使用 to_datetime 将非数字而非日期时间值转换为缺失值和 to_numeric为了避免混合类型 - 带有字符串的数字/日期时间 - 然后数字/类似日期时间的函数失败:

df['DATE_OF_BIRTH'] = pd.to_datetime(df['DATE_OF_BIRTH'], errors='coerce')
df['AGE'] = pd.to_numeric(df['AGE'], errors='coerce').round(3)
print (df)
DATE_OF_BIRTH AGE
0 1974-03-28 43.010
1 NaT NaN
2 1970-11-27 46.342
3 1974-05-09 42.894
4 1985-03-14 32.047

关于python - 四舍五入数据框列时处理字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57428051/

25 4 0
文章推荐: python - 如何从第二项迭代python dict
文章推荐: java - 如何在java类中访问kotlin pojo
文章推荐: javascript - 如何在 Backbone.js 中追加后添加类?
文章推荐: java - 根据对象内的字符串数组对 List 进行排序