从pandas中的数据中删除尾随*或#

时间:2017-09-22 15:02:47

标签: pandas

我正在使用pandas读取csv并将所有数据类型设为object

NO是具有数字值的列,在某些观察中带有尾随*和#。

我试过

import numpy as np
tai[np.isfinite(tai['NO'])]
  

TypeError:输入类型不支持ufunc'isfinite',而且   输入无法安全地强制转换为任何支持的类型   施法规则''安全''

如何删除NO列中尾随*或#的所有行?

1 个答案:

答案 0 :(得分:1)

考虑这个数据框,

    No
0   1
1   2#
2   3
3   4*
4   #5

您可以使用它来删除仅尾随字符

df['No'] = df['No'].str.replace('[#|*]$', '')

你得到了

     No
0     1
1     2
2     3
3     4
4    #5

更通用的解决方案是您要从整个列中删除这些字符并仅保留数字

df['No' ] = df['No'].str.extract('(\d+)', expand = False)

你得到了

    No
0    1
1    2
2    3
3    4
4    5