转换列中的Case语句

2024-04-26 20:45:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

主测向

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

输出测向

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条回答
网友
1楼 · 发布于 2024-04-26 20:45:44

基本上,你可以用groupby{}做map,然后再加上一些化妆品

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

相关问题 更多 >