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-不幸的是,不是,需要将其转换为大写。