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

我是一名环境地质学家,我只是在学习Python/Pandas。我在Pandas中有一个分析数据的数据帧,类似于下面的示例:

http://img1.mukewang.com/62fb75a90001b9ff03730195.jpg

我只想从Total_dl中删除数字,离开检测限(带有<的数字)。这将是我正在寻找的最终数据帧:

http://img2.mukewang.com/62fb75b20001a6a703850201.jpg

由于该列是字符串,因此我不确定如何解析该列。任何帮助将不胜感激。


慕村225694
浏览 206回答 4
4回答

幕布斯6054654

一种方法。不确定这是一个多好的解决方案:df['Total_dl'] = df['Total_dl'].apply(lambda o: o if '<' in str(o) else np.nan)使用执行相同操作的函数:>>> df&nbsp; &nbsp;SampleID Total_dl0&nbsp; &nbsp; A-1-0'&nbsp; &nbsp; &nbsp; 2.51&nbsp; A-1-0.5'&nbsp; &nbsp;<0.021>>> df.dtypesSampleID&nbsp; &nbsp; objectTotal_dl&nbsp; &nbsp; objectdtype: object>>> def foo(o):...&nbsp; &nbsp; &nbsp;if '<' in str(o):...&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return o...&nbsp; &nbsp; &nbsp;else:...&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return np.nan...&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;>>> df['Total_dl'] = df['Total_dl'].apply(foo)>>> df&nbsp; &nbsp;SampleID Total_dl0&nbsp; &nbsp; A-1-0'&nbsp; &nbsp; &nbsp; NaN1&nbsp; A-1-0.5'&nbsp; &nbsp;<0.021>>>&nbsp;

肥皂起泡泡

以下操作应该可以解决问题:import numpy as npmask = df.Total_dll < 1.df.loc[mask, 'Total_dll'] = np.nan如果类型为 ,您可以尝试以下操作:Total_dllstringimport numpy as npdf.str.startswith('<')df.loc[df.Total_dll.str.startswith('<'), np.nan]

弑天下

假设你的数据框被调用,那么这将做这个技巧dfimport numpy as npnan_condition = df[~df["Total_dl"].str.contains(">")]df.loc[nan_condition,"Total_dl"] = np.nan

茅侃侃

您可以使用此功能data&nbsp;=&nbsp;data.loc[data[column]&nbsp;>&nbsp;x]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python