熊猫案例案例转换列

时间:2020-07-10 14:41:14

标签: python pandas

我想按月份对每个地区的所有product_id's进行计数。 在此之前,我需要使用以下管道将邮政编码映射到该区域:

regiondict = {
 "10": "A",
  "23": "A",
  "24": "A",
 "53": "B",
  "32": "B",
  "49": "B",
 "11": "C",
  "14": "C",
  "65": "C"
}

主df

product_id    zip_code  month
32324         10        Feb-2019
34345         23        Feb-2019
45453         24        March-2019
34343         53        Feb-2019
53533         32        March-2019
12334         49        March-2019
99934         11        Feb-2019
21213         14        Feb-2019
13232         65        March-2019

输出df

region    count_product_id  month
A         2                 Feb-2019
A         1                 March-2019
B         1                 Feb-2019
B         2                 March-2019
B         2                 Feb-2019
B         1                 March-2019


1 个答案:

答案 0 :(得分:1)

基本上,您可以对map groupby进行count,之后再做一些修饰。

df_ = (df.groupby([df.zip_code.astype(str).map(regiondict), 'month'])
          ['product_id'].count()
         .reset_index()
         .rename(columns={'zip_code':'region'}))

print(df_)
  region       month  product_id
0      A    Feb-2019           2
1      A  March-2019           1
2      B    Feb-2019           1
3      B  March-2019           2
4      C    Feb-2019           2
5      C  March-2019           1
相关问题