熊猫用文本围绕多个列

时间:2017-04-28 07:44:17

标签: python pandas

我有这个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)无效。如何在舍入列时忽略文本值?

1 个答案:

答案 0 :(得分:1)

您可以使用to_numeric + fillna + astypeint创建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