为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅从 Pandas 列中的字符串中删除数字

如何仅从 Pandas 列中的字符串中删除数字

慕村225694 2022-08-16 18:46:43
我是一名环境地质学家,我只是在学习Python/Pandas。我在Pandas中有一个分析数据的数据帧,类似于下面的示例:我只想从Total_dl中删除数字,离开检测限(带有<的数字)。这将是我正在寻找的最终数据帧:由于该列是字符串,因此我不确定如何解析该列。任何帮助将不胜感激。
查看完整描述

4 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

一种方法。不确定这是一个多好的解决方案:


df['Total_dl'] = df['Total_dl'].apply(lambda o: o if '<' in str(o) else np.nan)

使用执行相同操作的函数:


>>> df

   SampleID Total_dl

0    A-1-0'      2.5

1  A-1-0.5'   <0.021

>>> df.dtypes

SampleID    object

Total_dl    object

dtype: object

>>> def foo(o):

...     if '<' in str(o):

...         return o

...     else:

...         return np.nan

...         

>>> df['Total_dl'] = df['Total_dl'].apply(foo)

>>> df

   SampleID Total_dl

0    A-1-0'      NaN

1  A-1-0.5'   <0.021

>>> 


查看完整回答
反对 回复 2022-08-16
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

以下操作应该可以解决问题:


import numpy as np



mask = df.Total_dll < 1.

df.loc[mask, 'Total_dll'] = np.nan

如果类型为 ,您可以尝试以下操作:Total_dllstring


import numpy as np



df.str.startswith('<')

df.loc[df.Total_dll.str.startswith('<'), np.nan]


查看完整回答
反对 回复 2022-08-16
?
弑天下

TA贡献1818条经验 获得超8个赞

假设你的数据框被调用,那么这将做这个技巧df


import numpy as np

nan_condition = df[~df["Total_dl"].str.contains(">")]

df.loc[nan_condition,"Total_dl"] = np.nan


查看完整回答
反对 回复 2022-08-16
?
茅侃侃

TA贡献1842条经验 获得超21个赞

您可以使用此功能

data = data.loc[data[column] > x]


查看完整回答
反对 回复 2022-08-16
  • 4 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号