以下是一个示例代码,演示了按照等级将月份分组的解决方法:
import pandas as pd
# 创建一个示例数据集
data = {'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
'Grade': [1, 1, 2, 2, 3, 3, 1, 1, 2, 2, 3, 3]}
df = pd.DataFrame(data)
# 将Month列的数据类型设置为Categorical
df['Month'] = pd.Categorical(df['Month'], categories=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], ordered=True)
# 按照Grade列和Month列进行分组
grouped = df.groupby(['Grade', 'Month'])
# 输出每个分组的内容
for name, group in grouped:
print(name)
print(group)
print()
这段代码首先创建了一个包含月份和等级的示例数据集。然后,将Month列的数据类型设置为Categorical,并指定了月份的顺序。
接下来,使用groupby
方法按照Grade列和Month列对数据集进行分组。然后,可以通过遍历grouped
对象,输出每个分组的内容。
在这个示例中,我们得到了以下输出:
(1, 'Jan')
Month Grade
0 Jan 1
(1, 'Jul')
Month Grade
6 Jul 1
(2, 'Mar')
Month Grade
2 Mar 2
(2, 'Apr')
Month Grade
3 Apr 2
(2, 'Sep')
Month Grade
8 Sep 2
(2, 'Oct')
Month Grade
9 Oct 2
(3, 'May')
Month Grade
4 May 3
(3, 'Jun')
Month Grade
5 Jun 3
(3, 'Nov')
Month Grade
10 Nov 3
(3, 'Dec')
Month Grade
11 Dec 3