我想按月份对每个地区的所有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
答案 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