gpt4 book ai didi

python - 如果 pandas Dataframe 列值与单词匹配,则将其替换为列表

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:10 25 4
gpt4 key购买 nike

我有一个这样的颜色列表:

color = ['green', 'blue', 'red']

我有一个这样的数据框:

df:
col1 col2
A dark green
B sea blue
C blue
D exclusive red
E green
F pale red

我想将 col2color 列表匹配。如果 col2 的任何单词与 color 列表的元素匹配,则将其替换为列表值。

结果数据框将是

 col1          col2
A green
B blue
C blue
D red
E green
F red

使用 pandas 最有效的方法是什么?

最佳答案

使用Series.str.extract通过 | 为正则表达式 OR 加入值,最后添加 fillna用于将不匹配的值 (NaNs) 替换为原始列:

print (df)
col1 col2
0 A dark green
1 B sea blue
2 C blue
3 D exclusive red
4 E green
5 F pale <- not matched value

color=['green','blue','red']

pat = r'({})'.format('|'.join(color))
df['col2'] = df['col2'].str.extract(pat, expand=False).fillna(df['col2'])

print (df)
col1 col2
0 A green
1 B blue
2 C blue
3 D red
4 E green
5 F pale

关于python - 如果 pandas Dataframe 列值与单词匹配,则将其替换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54418326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com