2024-05-01 21:49:51 发布
网友
对于数据帧,我用一系列值替换了一列中的一组项,如下所示:
df['borough_num'] = df['Borough'].replace(regex=['MANHATTAN', 'BROOKLYN', 'QUEENS', 'STATEN ISLAND','BRONX'], value=[1, 2, 3, 4,5])
我想用0替换“Borough”中之前没有提到的所有其他元素的问题,我也需要使用regex,因为有类似于07 BRONX的数据,我也需要用5而不是0替换它
从前面的问题,使用replace,关于它为什么工作,您可以检查link
replace
s=df.Borough.replace(dict(zip(l,[1,2,3,4,5])),regex=True) pd.to_numeric(s,errors = 'coerce').fillna(0).astype(int) Out[44]: 0 3 1 5 # notice here still change to 5 2 1 3 2 4 0 Name: Borough, dtype: int32
数据输入
df = pd.DataFrame({ 'Borough': ['QUEENS', 'BRONX 777', 'MANHATTAN', 'BROOKLYN', 'INVALID']}) l = ['MANHATTAN', 'BROOKLYN', 'QUEENS', 'STATEN ISLAND','BRONX']
或者更短,使用map:
map
df['borough_num']=df['Borough'].map(dict(zip(['MANHATTAN', 'BROOKLYN', 'QUEENS', 'STATEN ISLAND','BRONX'],[1, 2, 3, 4,5])))
现在:
print(df)
和预期的一样。你知道吗
更新:
df['borough_num']=df['Borough'].str.replace('\d+','').map(dict(zip(['MANHATTAN', 'BROOKLYN', 'QUEENS', 'STATEN ISLAND','BRONX'],[1, 2, 3, 4,5])))
从前面的问题,使用
replace
,关于它为什么工作,您可以检查link数据输入
或者更短,使用
map
:现在:
和预期的一样。你知道吗
更新:
相关问题 更多 >
编程相关推荐