基于多个标准熊猫在数据框中生成计数列
我有一个这样的数据框:
Location Action
House1 Quote
House2 Offer
House3 Quote
House2 Quote
House2 Quote
House3 Offer
我想添加两列,一列显示任何给定房屋的报价计数,另一列显示任何给定房屋的报价计数。
我已经尝试了 groupby 和 transform 的一些选项,但无法弄清楚如何在我想要计算的“操作”列中指定条件。
理想情况下,输出是这样的:
Location Action Quotes Offers
House1 Quote 1 0
House2 Offer 2 1
House3 Quote 1 1
House2 Quote 2 1
House2 Quote 2 1
House3 Offer 1 1
回答
您可以执行pd.crosstab并merge返回Location:
df.merge(pd.crosstab(df['Location'],df['Action']), on='Location')
Location Action Offer Quote
0 House1 Quote 0 1
1 House2 Offer 1 2
2 House2 Quote 1 2
3 House2 Quote 1 2
4 House3 Quote 1 1
5 House3 Offer 1 1