假设我们有一个包含学生姓名、年龄和成绩的df,我们想要生成每个年龄组(例如 10-20岁,20-30岁)的平均分数。我们可以使用以下代码实现:
import pandas as pd
# 创建示例df
df = pd.DataFrame({
'Name':['Alice','Bob','Charlie','David','Emily','Frank','Grace','Helen'],
'Age':[20,19,21,25,23,18,19,22],
'Score':[80,85,88,78,92,90,95,87]
})
# 根据年龄将学生分组,计算每个组的平均分(去掉小数点后一位)
grouped = df.groupby(pd.cut(df['Age'], range(10, 31, 10)))['Score'].mean().apply(lambda x: round(x, 1))
# 将分组数据转化为一个新的DataFrame
result = pd.DataFrame({
'Age group':['10-20','20-30'],
'Score':grouped.values
})
在这个例子中,我们使用groupby
方法将学生按年龄分组,并计算每个组的平均分数。我们然后使用apply
方法将所有值四舍五入到一位小数,并将结果放入一个新的DataFrame中。
result
的输出将是:
Age group Score
0 10-20 86.2
1 20-30 86.7
通过这种方式,我们可以使用pandas灵活计算并生成想要的DataFrame。
下一篇:遍历另一个模块中的函数