【发布时间】:2017-02-12 04:34:11
【问题描述】:
我正在尝试使用 pandas 对成员进行分组,以计算成员购买的订阅类型的数量并获得每个成员的总支出。加载后的数据类似于:
df =
Member Nbr Member Name-First Member Name-Last Date-Joined Member Type Amount Addr-Formatted Date-Birth Gender Status
1 Aboud Tordon 2010-03-31 00:00:00 1 Year Membership 331.00 ADDRESS_1 1972-08-01 00:00:00 Male Active
1 Aboud Tordon 2011-04-16 00:00:00 1 Year Membership 334.70 ADDRESS_1 1972-08-01 00:00:00 Male Active
1 Aboud Tordon 2012-08-06 00:00:00 1 Year Membership 344.34 ADDRESS_1 1972-08-01 00:00:00 Male Active
1 Aboud Tordon 2013-08-21 00:00:00 1 Year Membership 362.53 ADDRESS_1 1972-08-01 00:00:00 Male Active
1 Aboud Tordon 2015-08-31 00:00:00 1 Year Membership 289.47 ADDRESS_1 1972-08-01 00:00:00 Male Active
2 Jean Manuel 2012-12-10 00:00:00 4 Month Membership 148.79 ADDRESS_2 1984-08-01 00:00:00 Male In-Active
2 Jean Manuel 2013-03-13 00:00:00 1 Year Membership 348.46 ADDRESS_2 1984-08-01 00:00:00 Male In-Active
2 Jean Manuel 2014-03-15 00:00:00 1 Year Membership 316.86 ADDRESS_2 1984-08-01 00:00:00 Male In-Active
3 Val Adams 2010-02-09 00:00:00 1 Year Membership 333.25 ADDRESS_3 1934-10-26 00:00:00 Female Active
3 Val Adams 2011-03-09 00:00:00 1 Year Membership 333.88 ADDRESS_3 1934-10-26 00:00:00 Female Active
3 Val Adams 2012-04-03 00:00:00 1 Year Membership 318.34 ADDRESS_3 1934-10-26 00:00:00 Female Active
3 Val Adams 2013-04-15 00:00:00 1 Year Membership 350.73 ADDRESS_3 1934-10-26 00:00:00 Female Active
3 Val Adams 2014-04-19 00:00:00 1 Year Membership 291.63 ADDRESS_3 1934-10-26 00:00:00 Female Active
3 Val Adams 2015-04-19 00:00:00 1 Year Membership 247.35 ADDRESS_3 1934-10-26 00:00:00 Female Active
5 Michele Younes 2010-02-14 00:00:00 1 Year Membership 333.25 ADDRESS_4 1933-06-23 00:00:00 Female In-Active
5 Michele Younes 2011-05-23 00:00:00 1 Year Membership 317.77 ADDRESS_4 1933-06-23 00:00:00 Female In-Active
5 Michele Younes 2012-05-28 00:00:00 1 Year Membership 328.16 ADDRESS_4 1933-06-23 00:00:00 Female In-Active
5 Michele Younes 2013-05-31 00:00:00 1 Year Membership 360.02 ADDRESS_4 1933-06-23 00:00:00 Female In-Active
7 Adam Herzburg 2010-07-11 00:00:00 1 Year Membership 335 48 ADDRESS_5 1987-08-30 00:00:00 Male In-Active
...
由于最受欢迎的Member Type 是1 Month、3 Month、4 Month、6 Month 和1 Year 我想创建一个列来计算给定成员的Member Type 的数量已购买。
还有2 Month、5 Month、7 Month、8 Month 和Pool-OnlyMember Type 很少出现,如果会员有这种类型的合同,我想把它算作'杂项'。
我还试图获得一个“总计”列,该列总结了给定成员花费的总金额。
基本上我想将我以前的数据框转换为类似:
df1=
Member Nbr Member Name-First Member Name-Last 1_Month 3_Month 4_Month 6_Month 1_Year Misc Total Addr-Formatted Date-Birth Gender Status
1 Aboud Tordon 0 0 0 0 5 0 1662.04 ADDRESS_1 1972-08-01 00:00:00 Male Active
2 Jean Manuel 0 0 1 0 2 0 813.86 ADDRESS_2 1984-08-01 00:00:00 Male In-Active
3 Val Adams 0 0 0 0 6 0 1875.18 ADDRESS_3 1934-10-26 00:00:00 Female Active
5 Michele Younes 0 0 0 0 4 0 1339.20 ADDRESS_4 1933-06-23 00:00:00 Female In-Active
7 Adam Herzburg 0 0 0 0 1 0 335.48 ADDRESS_5 1933-06-23 00:00:00 Male In-Active
...
我遇到的问题是,每当我使用 groupby 时,我只能总结金额,或者单独计算一种特定类型的合同,但我无法得到它类似于df1。
【问题讨论】:
标签: python pandas group-by pivot-table reshape