【问题标题】:remove trailing * or # from data in pandas从 pandas 的数据中删除尾随的 * 或 #
【发布时间】:2018-03-04 05:08:16
【问题描述】:

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

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

我试过了

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

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

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

【问题讨论】:

    标签: pandas


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 2021-05-28
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 2012-07-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多