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