4 回答

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
>>>

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]

TA貢獻1818條經驗 獲得超8個贊
假設你的數據框被調用,那么這將做這個技巧df
import numpy as np
nan_condition = df[~df["Total_dl"].str.contains(">")]
df.loc[nan_condition,"Total_dl"] = np.nan
添加回答
舉報