我有一个CSV文件,其中一列充满了类似于以下的值…
列A | 嗨(第一个)! |
---|
谢谢! |
什么车吗? |
你是[第一][最后]吗? |
你知道吗? |
Save 25% [First]! |
Get $2,000 Back! |
拥抱前方的路 |
每人节省30%! |
对于这种情况,我将使用np.select
。它接受一个条件列表和一个相同长度的替换值列表。对于每个条件,它匹配的所有值都将被替换为相应的值。当所有条件都不匹配时,np.select
还将默认值作为第三个参数。
conds = [
df['Column A'].str.contains(r'[(?:First|Last)]'),
df['Column A'].str.contains('Save'),
df['Column A'].str.contains('?', regex=False),
df['Column A'].str.contains('Thank', regex=False),
]
vals = [
'Personalized',
'Offer',
'Curiosity',
'Gratitude',
]
df['Column B'] = np.select(conds, vals, 'Generic')
输出:
>>> df
Column A Column B
0 Hi [First]! Personalized
1 Thank You! Gratitude
2 What Car? Curiosity
3 Are you [First] [Last]? Personalized
4 Did you know? Curiosity
5 Save 25% [First]! Personalized
6 Get $2,000 Back! Generic
7 Embrace the road ahead Generic
8 Everyone saves 30%! Generic