迭代数据框中某些列的唯一组合

问题描述 投票:0回答:1

我有一个数据框如下:

年份 状态 面积 市场1 市场2 音量 时间
2022 1 A A1 M1 M2A 94 210
2022 2 A A1 M1 M2A 87 230
2022 3 A A1 M1 M2A 99 324
2022 4 A A1 M1 M2A 67 250
2022 2 A A2 M1 M2B 23 388
2022 3 A A3 M1 M2C 39 159
2022 4 B B1 M1 M2A 62 461
2022 5 B B2 M1 M2B 35 229
2022 6 B B3 M1 M2C 90 140
2022 7 B B1 M1 M2A 45 233
2022 8 A A1 M1 M2B 60 147
2022 9 A A2 M1 M2C 72 462
2022 10 A A3 M1 M2A 24 351
2023 1 B B1 M1 M2B 55 415
2023 2 B B2 M1 M2C 46 496
2023 3 B B3 M1 M2A 2 159
2023 4 A A1 M1 M2B 85 321
2023 5 A A2 M1 M2C 98 249
2023 6 A A3 M1 M2A 42 219
2024 1 B B1 M1 M2B 40 111
2024 2 B B2 M1 M2C 1 294
2024 3 B B3 M1 M2A 23 397
2024 4 B B1 M1 M2B 88 190
2024 5 A A1 M1 M2C 58 186
2024 6 A A2 M1 M2A 71 279

我需要迭代/过滤州、地区、市场 1、市场 2 的独特组合,但我需要每个独特组合的所有年份和月份。

例如,第一个分割应该给我这个数据框:

年份 状态 面积 市场1 市场2 音量 时间
2022 1 A A1 M1 M2A 94 210
2022 2 A A1 M1 M2A 87 230
2022 3 A A1 M1 M2A 99 324
2022 4 A A1 M1 M2A 67 250

第二次分割应该给出这个,等等:

年份 状态 面积 市场1 市场2 音量 时间
2022 8 A A1 M1 M2B 60 147
2023 4 A A1 M1 M2B 85 321
python pandas dataframe iteration
1个回答
0
投票

我想你想要

out = df.groupby(['Year','Month','State', 'Area', 'Market1','Market2'], as_index=False).mean()

out['Division'] = out['Volume']/out['Hours']

输出:

    Year  Month State Area Market1 Market2  Volume  Hours  Division
0   2022      1    A   A1      M1     M2A     94.0  210.0  0.447619
1   2022      2    A   A1      M1     M2A     87.0  230.0  0.378261
2   2022      2    A   A2      M1     M2B     23.0  388.0  0.059278
3   2022      3    A   A1      M1     M2A     99.0  324.0  0.305556
4   2022      3    A   A3      M1     M2C     39.0  159.0  0.245283
5   2022      4    A   A1      M1     M2A     67.0  250.0  0.268000
6   2022      4    B   B1      M1     M2A     62.0  461.0  0.134490
7   2022      5    B   B2      M1     M2B     35.0  229.0  0.152838
8   2022      6    B   B3      M1     M2C     90.0  140.0  0.642857
9   2022      7    B   B1      M1     M2A     45.0  233.0  0.193133
10  2022      8    A   A1      M1     M2B     60.0  147.0  0.408163
11  2022      9    A   A2      M1     M2C     72.0  462.0  0.155844
12  2022     10    A   A3      M1     M2A     24.0  351.0  0.068376
13  2023      1    B   B1      M1     M2B     55.0  415.0  0.132530
14  2023      2    B   B2      M1     M2C     46.0  496.0  0.092742
15  2023      3    B   B3      M1     M2A      2.0  159.0  0.012579
16  2023      4    A   A1      M1     M2B     85.0  321.0  0.264798
17  2023      5    A   A2      M1     M2C     98.0  249.0  0.393574
18  2023      6    A   A3      M1     M2A     42.0  219.0  0.191781
19  2024      1    B   B1      M1     M2B     40.0  111.0  0.360360
20  2024      2    B   B2      M1     M2C      1.0  294.0  0.003401
21  2024      3    B   B3      M1     M2A     23.0  397.0  0.057935
22  2024      4    B   B1      M1     M2B     88.0  190.0  0.463158
23  2024      5    A   A1      M1     M2C     58.0  186.0  0.311828
24  2024      6    A   A2      M1     M2A     71.0  279.0  0.254480
© www.soinside.com 2019 - 2024. All rights reserved.