【发布时间】:2019-05-20 18:25:34
【问题描述】:
我有一个如下的数据框:
df = pd.DataFrame({
"group_code": ['111', '111', '111', '111', '111', '111', '111', '222', '222','222', '222', '222', '222'],
"ind_code": ['K M trading', 'K.M trad', 'KM trading LL', 'bill payment', 'pays', 'PayMent', 'Payer', 'Rev12','Rev11','13 rev','Rev13','Rev .!','REV 17']
})
我想对列中的所有值进行分组:
'K M trading', 'K.M trad', 'KM trading LL' 为 "KM Trading"。
谁能帮帮我?
我尝试了下面的代码,但它不起作用
def replace_(row):
if 'pay' in row.lower():
return 'Payment'
if 'rev' in row.lower():
return 'Rev'
if 'km' in row.lower():
return 'KM Trade'
else:
return row
df.ind_code = df.ind_code.apply(lambda row : replace_(row))
print(df)
【问题讨论】:
-
涉及的“分组”在哪里?
-
是 'K M trading'、'K.M trad'、'KM trading LL' 唯一的可能性还是有其他类似的字符串?
-
df.ind_code = df.ind_code.str.replace(r'k\.?\s?m\.? .*', 'KM Trading', case=False)工作吗? -
'Rev12','Rev11','13 rev','Rev13','Rev .!','REV 17'所有这些也属于类似的分组 -
@coldspeed 我总是对具有良好正则表达式技能的人印象深刻 :) 不确定 OP 是否正是在问这个问题,或者他/她是否想要更通用的东西:如何应用一般规则 @987654327 @到一个系列
标签: python regex string pandas replace