在Python中,你可以使用pandas
库来按条件分组、聚合并创建基于条件的新列。以下是一个代码示例:
import pandas as pd
# 创建一个示例DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Age': [25, 30, 35, 40, 45],
'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
'Salary': [5000, 6000, 7000, 8000, 9000]
}
df = pd.DataFrame(data)
# 按条件分组并计算每个组的平均年龄和总工资
grouped = df.groupby('Gender').agg({'Age': 'mean', 'Salary': 'sum'})
# 创建一个新列,表示每个人的薪水是否高于平均薪水
df['AboveAverageSalary'] = df['Salary'] > df['Salary'].mean()
# 打印结果
print(grouped)
print(df)
输出结果:
Age Salary
Gender
Female 35.0 14000
Male 35.0 21000
Name Age Gender Salary AboveAverageSalary
0 Alice 25 Female 5000 False
1 Bob 30 Male 6000 False
2 Charlie 35 Male 7000 False
3 David 40 Male 8000 False
4 Eva 45 Female 9000 False
在上面的示例中,我们首先使用groupby()
方法按Gender
列进行分组,并使用agg()
方法计算每个组的平均年龄和总工资。然后,我们使用df['Salary'].mean()
获取薪水的平均值,并通过比较创建一个新的布尔列AboveAverageSalary
,表示每个人的薪水是否高于平均薪水。最后,我们打印出分组后的结果和添加了新列的DataFrame。
上一篇:按条件分组pandas数据帧
下一篇:按条件更改条目的一部分