我是一名环境地质学家,我只是在学习Python / Pandas。我在Pandas中有一个分析数据的数据框,类似于下面的示例:
我只想从Total_dl中删除保留检测限的数字(带有<的数字)。这将是我正在寻找的最终数据框:
由于该列是字符串,所以我不确定如何解析该列。任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
以下应该可以解决问题:
#Write out the file
try:
display('Writing {0} '.format(filename))
df_full.to_json('{0}{1}'.format(output_path,filename),orient='records',lines=True )
except Exception as e :
logging.error("Error could not write file", exc_info=True)
print("Error could not write file")
如果import numpy as np
mask = df.Total_dll < 1.
df.loc[mask, 'Total_dll'] = np.nan
的类型为Total_dll
,则可以尝试以下操作:
string
答案 1 :(得分:0)
一种方法。不确定解决方案有多好:
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
>>>
答案 2 :(得分:0)
假设您的数据帧称为df
,那么就可以解决问题
import numpy as np
nan_condition = df[~df["Total_dl"].str.contains(">")]
df.loc[nan_condition,"Total_dl"] = np.nan
答案 3 :(得分:-1)
您可以使用此
data = data.loc[data[column] > x]