【问题标题】:removing all numbers from a pandas dataframe从熊猫数据框中删除所有数字
【发布时间】:2019-06-26 14:25:03
【问题描述】:

我有一个标记化的文本。里面有1.2、2.3等数字 我使用以下代码删除它们,但它们不起作用

train_vs['doc_text'] = train_vs['doc_text'].apply(lambda x: [c for c in x if not c.isnumeric()])
train_vs['doc_text'] = train_vs['doc_text'].apply(lambda x: [c for c in x if not c.isdigit()])  

有关如何删除这些数字的任何帮助? 谢谢

【问题讨论】:

标签: python pandas nlp digits


【解决方案1】:

.applypd.Seriespd.DataFrame 的一个方法,您在Series 上调用它。这里的结果是你的 lambda 的每个 x 都是你数据框中的一个值。如果您的 Series 的每个值中确实有一个标记化列表,那么我不确定这是否理想。

无论如何,isdigitisnumeric 无法检查开箱即用的浮点数。一个愚蠢的解决方法可能如下所示:

df = pd.DataFrame(
    {
    'smple':[
    ["12.34", "atrium"],
    ["12.34", "atrium"],["election", "foible"],
    ['USA', "2131244213213"]
        ]
    }
)


df.smple.apply(
    lambda x: [c for c in x if not (c.isnumeric() or c.replace('.','',1).isdigit())]
)

我认为这个thread 对你阅读会有帮助。

【讨论】:

  • 嗨,非常感谢您的帮助。不幸的是,您的代码适用于某些数字,但不是全部。我仍然有 1.23、-3.45.. 等数字,尤其是负数。
猜你喜欢
  • 2021-03-29
  • 1970-01-01
  • 2016-11-13
  • 2018-12-18
  • 2020-03-23
  • 2016-04-30
  • 2017-07-27
  • 2013-10-04
  • 2016-11-12
相关资源
最近更新 更多