2024-04-28 21:07:16 发布
网友
我是一名环境地质学家,我正在学习Python/熊猫。我在Pandas中有一个分析数据的dataframe,类似于下面的示例:
我只想从总数中删除保留检测限的数字(带<;的数字)。这将是我要寻找的最后一个数据帧:
由于该列是字符串,我不确定如何解析该列。任何帮助都将不胜感激
谢谢
假设您的数据帧被称为df,那么这样就可以了
df
import numpy as np nan_condition = df[~df["Total_dl"].str.contains(">")] df.loc[nan_condition,"Total_dl"] = np.nan
一种方法。不确定这是一个多么好的解决方案:
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 >>>
下面应该可以做到这一点:
import numpy as np mask = df.Total_dll < 1. df.loc[mask, 'Total_dll'] = np.nan
如果Total_dll属于string类型,您可以尝试以下操作:
Total_dll
string
import numpy as np df.str.startswith('<') df.loc[df.Total_dll.str.startswith('<'), np.nan]
假设您的数据帧被称为
df
,那么这样就可以了一种方法。不确定这是一个多么好的解决方案:
改为使用执行相同操作的函数:
下面应该可以做到这一点:
如果
Total_dll
属于string
类型,您可以尝试以下操作:相关问题 更多 >
编程相关推荐