Python 当值以“\u h”结尾时,将数据帧值替换为np.nan

Python 当值以“\u h”结尾时,将数据帧值替换为np.nan,python,pandas,Python,Pandas,下面是我一直在使用的代码,用np.NaN替换一些值。我的问题是如何用np.NaN替换索引111处的'47614750_h'。我可以直接使用drop_list来完成这项工作,但是,我需要在许多文件上使用以“_h”结尾的不同值进行迭代,并希望自动完成这项工作。 我尝试了一些搜索正则表达式,因为这似乎是一个方向,但找不到我需要的 drop_list = ['dash_code', 'SONIC WELD'] df_clean.replace(drop_list, np.NaN).tail(10)

下面是我一直在使用的代码,用np.NaN替换一些值。我的问题是如何用np.NaN替换索引111处的'47614750_h'。我可以直接使用drop_list来完成这项工作,但是,我需要在许多文件上使用以“_h”结尾的不同值进行迭代,并希望自动完成这项工作。 我尝试了一些搜索正则表达式,因为这似乎是一个方向,但找不到我需要的

drop_list = ['dash_code', 'SONIC WELD']

df_clean.replace(drop_list, np.NaN).tail(10)

    DASH_CODE     Name                          Quantity
107 1011567      .156 MALE BULLET TERM INSUL    1.0
108 102066901     .032 X .187 FEMALE Q.D. TERM. 1.0
109 105137901     TERM,RING,10-12AWG,INSULATED  1.0
110 101919701     1/4 RING TERM INSUL           2.0
111 47614750001_h HARNESS, MAIN, AC, LIO        1.0
112 NaN           NaN                           19.0
113 7685          5/16 RING TERM INSUL.         1.0
114 102521601     CLIP,HARNESS                  2.0
115 47614808001   CAP, RESISTOR, TERMINATION    1.0
116 103749801     RECPT, DEUTSCH, DTM04-4P      1.0
您可以使用pd.Series.apply与lambda:

df['DASH_CODE'] = df['DASH_CODE'].apply(lambda x: np.NaN if x.endswith('_h') else x)
从:

对系列的值调用函数。ufunc可以是NumPy函数吗 这适用于整个系列或只包含 在单一值上工作


使用以下方法将所有行转换为浮点可能会更快:


这是我的数据帧的更好的图片。谢谢你的回复。我已经能够使用这两种解决方案,并且这些解决方案回答了我遇到的其他无关问题。
In [11]: pd.to_numeric(df.DASH_CODE, errors='coerce')
Out[11]:
0    1.011567e+06
1    1.020669e+08
2    1.051379e+08
3    1.019197e+08
4             NaN
5             NaN
6    7.685000e+03
7    1.025216e+08
8    4.761481e+10
9    1.037498e+08
Name: DASH_CODE, dtype: float64

In [12]: df["DASH_CODE"] = pd.to_numeric(df["DASH_CODE"], errors='coerce')