Python 用多个单一值替换多个值列表的优雅方式
我有一个如下所示的数据帧Python 用多个单一值替换多个值列表的优雅方式,python,pandas,dataframe,replace,series,Python,Pandas,Dataframe,Replace,Series,我有一个如下所示的数据帧 df = pd.DataFrame() df['text'] = ['p', 'S', 'primary','PRI','SECONDARY', 'SEC', 'S', 'TERTIARY','T','third'] text 0 primary 1 secondary 2 primary 3 primary 4 secondary 5 secondary 6 secondary 7 tertiary 8 tertiary
df = pd.DataFrame()
df['text'] = ['p', 'S', 'primary','PRI','SECONDARY', 'SEC', 'S', 'TERTIARY','T','third']
text
0 primary
1 secondary
2 primary
3 primary
4 secondary
5 secondary
6 secondary
7 tertiary
8 tertiary
9 tertiary
我想替换如下所示的值列表
df = pd.DataFrame()
df['text'] = ['p', 'S', 'primary','PRI','SECONDARY', 'SEC', 'S', 'TERTIARY','T','third']
text
0 primary
1 secondary
2 primary
3 primary
4 secondary
5 secondary
6 secondary
7 tertiary
8 tertiary
9 tertiary
a) 将p
,PRIMARY
,PRI
替换为PRIMARY
b) 将S
,SECONDARY
,SEC
替换为SECONDARY
c) 用THIRD
替换T
,THIRD
,THIRD
我试过下面的方法
df['text'] = df['text'].replace(['P','PRIMARY','PRI'],'primary')
df['text'] = df['text'].replace(['S','SECONDARY','SEC'],'secondary')
df['text'] = df['text'].replace(['T','TERTIARY','THIRD'],'tertiary')
但是,有没有其他有效而优雅的方法可以把这些写在一行中呢
我希望我的输出如下所示
df = pd.DataFrame()
df['text'] = ['p', 'S', 'primary','PRI','SECONDARY', 'SEC', 'S', 'TERTIARY','T','third']
text
0 primary
1 secondary
2 primary
3 primary
4 secondary
5 secondary
6 secondary
7 tertiary
8 tertiary
9 tertiary
避免多个
replace
的一个方法是使用dictionary
并将其平铺到另一个dict,用于列表值中的键,通过以下方式将列匹配转换为大写:
“这是不区分大小写的吗?”TheGreat-不幸的是,不是,需要将其转换为大写。