state Year Month count
0 alabama 2017.0 10.0 31
1 alabama 2017.0 11.0 30
2 alabama 2017.0 12.0 31
3 alabama 2018.0 1.0 31
4 alabama 2018.0 2.0 28
5 alabama 2018.0 3.0 31
6 alabama 2018.0 4.0 30
7 alabama 2018.0 5.0 31
8 alabama 2018.0 6.0 30
9 alabama 2018.0 7.0 14
10 arkansas 2017.0 10.0 31
11 arkansas 2017.0 11.0 30
12 arkansas 2017.0 12.0 31
我可以将上面的数据框转换为:
Month
state
alabama {2017:10.0, 2017:11.0, 2017:12.0, 2018:1.0, 2018:2.0, 2018:3.0, 2018:4.0, 2018:5.0, 2018:6.0, 2018:7.0}
arkansas {2017:10.0, 2017:11.0, 2017:12.0}
与 converting pandas dataframe to contain a list 有关
根据下面@Vaishali 的评论,由于字典不能包含重复的键,这也应该没问题:
Month
state
alabama [[2017,10.0], [2017,11.0], [2017,12.0], [2018,1.0], [2018,2.0], [2018,3.0], [2018,4.0], [2018,5.0], [2018,6.0], 2[018,7.0]]
arkansas [[2017,10.0], [2017,11.0], [2017,12.0]]
请您参考如下方法:
尝试
df.groupby('state').apply(lambda x: list(zip(x['Year'], x['Month'])))
state
alabama [(2017.0, 10.0), (2017.0, 11.0), (2017.0, 12.0...
arkansas [(2017.0, 10.0), (2017.0, 11.0), (2017.0, 12.0)]
