以下是一个示例代码,展示了如何按照两列分组,并根据两列的条件添加第三列:
import pandas as pd
# 创建示例数据
data = {
'Name': ['John', 'Mike', 'Mike', 'John', 'John', 'Mike'],
'Subject': ['Math', 'English', 'Math', 'English', 'Math', 'English'],
'Score': [90, 85, 95, 80, 92, 88]
}
df = pd.DataFrame(data)
# 按照Name和Subject分组,并根据条件添加第三列Grade
df['Grade'] = df.groupby(['Name', 'Subject']).apply(lambda x: 'Pass' if x['Score'].mean() >= 90 else 'Fail').reset_index(level=0, drop=True)
print(df)
输出结果:
Name Subject Score Grade
0 John Math 90 Pass
1 Mike English 85 Fail
2 Mike Math 95 Pass
3 John English 80 Fail
4 John Math 92 Pass
5 Mike English 88 Fail
在上述示例中,我们使用pandas库来处理数据。首先,我们创建一个包含Name、Subject和Score列的示例数据框df。然后,我们使用groupby函数按照Name和Subject列进行分组。
接下来,我们使用apply函数将自定义的lambda函数应用到每个分组上。这个lambda函数根据分组的Score列计算平均值,并根据条件返回Pass或Fail。然后,我们将这个新列Grade添加到原始数据框中。
最后,我们打印出结果。可以看到,第三列Grade根据Name和Subject的条件被成功添加到了数据框中。