我有这个df:
A B
0 13045.0 1.0
1 13056.0 15.0
2 Mobi 2.0
3 Mobi 3.0
4 15056.0 5.0
5 15068.0 1.0
我想将数值四舍五入为0,最后得到:
A B
0 13045 1
1 13056 15
2 Mobi 2
3 Mobi 3
4 15056 5
5 15068 1
我尝试过df.round(0)和df ['A']。round(0)无效。如何在舍入列时忽略文本值?
答案 0 :(得分:1)
您可以使用to_numeric
+ fillna
+ astype
至int
创建int
列,然后替换为mask
和{{3 }}:
a = pd.to_numeric(df.A, errors='coerce')
df.A = df.A.mask(a.notnull(), a.fillna(0).astype(int))
print (df)
A B
0 13045 1.0
1 13056 15.0
2 Mobi 2.0
3 Mobi 3.0
4 15056 5.0
5 15068 1.0