我是一名Python编程初学者,试图弄清楚如何将groupby操作的分组标签用作新数据框的索引。 例如,
df = pd.DataFrame({'Country': ['USA', 'USA', 'UK', 'China', 'Canada', 'Australia', 'UK', 'China', 'USA'],
'Year': [1979, 1983, 1987, 1991, 1995, 1999, 2003, 2007, 2011],
'Medals': [52, 30, 25, 41, 19, 17, 9, 14, 12]})
df:
Country Medals Year
0 USA 52 1979
1 USA 30 1983
2 UK 25 1987
3 China 41 1991
4 Canada 19 1995
5 Australia 17 1999
6 UK 9 2003
7 China 14 2007
8 USA 12 2011
c1 = df.groupby(df['Country'], as_index=True, sort=False, group_keys=True).size()
c1:
Country
USA 3
UK 2
China 2
Canada 1
Australia 1
我想要创建一个新的dataframe,其中包含上述c1结果严格按照该格式排列,但我一直没有成功。以下是我的输出结果:
d1 = pd.DataFrame(np.array(c1), columns=['Frequency'])
d1:
Frequency
0 3
1 2
2 2
3 1
4 1
我希望将组标签作为索引,而不是默认的0、1、2、3和4。
这正是我想要的:
Desired Output:
Frequency
USA 3
UK 2
China 2
Canada 1
Australia 1
请问我该如何实现这个功能?我猜如果我创建一个带有国家名称的标签,并将其分配为索引,可能会起作用。但是,我正在练习使用的原始数据有很多行,我无法创建一个标签列表。如果您有任何想法,将不胜感激。
c1 = pd.DataFrame(c1.values, index=c1.index.values, columns=['Frequency'])
,则不再需要使用 set_index。 - Josh Rumbut