以下是一个示例代码,它按照列后缀对每个组中的每列保留最小值。
import pandas as pd
# 创建示例数据
data = {'Group': ['A', 'A', 'A', 'B', 'B', 'B'],
'Value_1': [1, 2, 3, 4, 5, 6],
'Value_2': [7, 8, 9, 10, 11, 12],
'Value_3': [13, 14, 15, 16, 17, 18]}
df = pd.DataFrame(data)
# 根据 Group 列进行分组
groups = df.groupby('Group')
# 定义函数来保留每列的最小值
def keep_min(group):
cols = [col for col in group.columns if col.startswith('Value')]
group[cols] = group[cols].min()
return group
# 对每个组应用函数
df_min = groups.apply(keep_min)
print(df_min)
输出结果为:
Group Value_1 Value_2 Value_3
0 A 1 7 13
1 A 1 7 13
2 A 1 7 13
3 B 4 10 16
4 B 4 10 16
5 B 4 10 16
你也可以根据需要修改函数 keep_min
以保留每列的最大值,只需将 group[cols].min()
改为 group[cols].max()
即可。
上一篇:按照列和一般数字对床文件进行排序
下一篇:按照列将数据分组为行值