推荐方法2
In [1]: import pandas as pd
In [2]: a=pd.DataFrame({'a':[' 2 ',1],'b':[3,' 4 ']})
In [3]: a
Out[3]:
a b
0 2 3
1 1 4
# 可以看到2,4处有许多空格,在进行后续操作会有影响,因此想要将空格去掉
# 方法1:
In [4]: def delete_space(x):
...: if type(x) is str:
...: return x.strip()
...: else:
...: return x
In [5]: a.applymap(delete_space)
Out[5]:
a b
0 2 3
1 1 4
# 此时可以看到空格已经被去掉,在此当然也可以用int将字符转成数字,
# 但考虑到实际过程并非都为数字,也有可能是字符,例如:
In [21]: b=pd.DataFrame({'a':[' a ',1],'b':[3,' c ']})
In [23]: b
Out[23]:
a b
0 a 3
1 1 c
# 这个时候上方法依然适用:
In [26]: b.applymap(delete_space)
Out[26]:
a b
0 a 3
1 1 c
# 方法2
# 上面还定义一个函数,实际上采用lambda一行就能实现,一模一样的效果
In [24]: a.applymap(lambda x:x.strip() if type(x)==str else x)
Out[24]:
a b
0 2 3
1 1 4
In [25]: b.applymap(lambda x:x.strip() if type(x)==str else x)
Out[25]:
a b
0 a 3
1 1 c