Skip to main content
 首页 » 编程设计

python之将 Pandas 数据框转换为包含字典或列表列表

2025年05月04日9zhoujg

      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)]