【发布时间】:2018-10-03 23:57:27
【问题描述】:
使用 python pandas 数据框 df:
product_id |transaction_id | category | color
234 54 A black
349 54 B silver
213 46 A silver
490 46 A black
245 87 A black
249 87 B black
294 87 A silver
我想用相同颜色标记具有 A 和 B 类别的事务 ID。所以在上面的场景中,交易 87 有一个黑色的产品 A 和一个黑色的产品 B。
期望的输出:
product_id |transaction_id | category | color | flag
234 54 A black
349 54 B silver
213 46 A silver
490 46 A black
245 87 A black X
249 87 B black X
294 87 A silver X
我试图在类别和颜色之间创建一个唯一键,然后是 groupby,但它变得混乱,我仍然必须手动完成它。必须有更简单的方法。
df['key']=df['category']&df['color']
df['transaction_analysis']= df.groupby('transaction_id').key.transform(lambda x : '&'.join(set(x)))
【问题讨论】:
标签: python pandas if-statement conditional-statements