如何仅对带有对象混合的python数据框列中的数字进行舍入
2022-11-30
699
我有一个名为“df”的数据框,如图所示。 在这个数据框中,有“null”作为对象(dtype)和数字。 我希望只对多列中的数字值进行四舍五入(2)。 我已经编写了此代码,但一直收到“TypeError:'int'对象不可迭代”作为 TypeError。 *第一行代码是将 na 转换为“null”,因为其他数字需要为数字 dtype。
df['skor_change_w_ts']=pd.to_numeric(df['skor_change_w_ts'], errors='coerce').fillna("null", downcast='infer')
for i in len(df):
if df['skor_change_w_ts'][i] is float:
df['skor_change_w_ts'][i]=df['skor_change_w_ts'][i].round(2)
什么是最简单的代码来仅对多列中的数字值进行四舍五入(2)?
2个回答
round
在
fillna
之前:
df['skor_change_w_ts'] = (pd.to_numeric(df['skor_change_w_ts'], errors='coerce')
.round(2).fillna("null", downcast='infer')
)
示例输入:
df = pd.DataFrame({'skor_change_w_ts': [1, 2.6666, 'null']})
输出:
skor_change_w_ts
0 1.0
1 2.67
2 null
mozway
2022-11-30
您根本不需要调用 .fillna(),coerce 会为您完成该操作。
df['skor_change_w_ts'] = (pd.to_numeric(df['skor_change_w_ts'], errors='coerce').round(2)
应该可以解决问题。
big_water_guy
2022-11-30