如何在Pandas DataFrame中获取指定列最大最小值并生成新DataFrame
实现方案
你可以通过两种方式实现需求,第二种方案通用适配性更强:
方案1:适配你当前示例(所有行name相同的场景)
直接提取所需的三个值构造新DataFrame即可:
# 提取对应字段的目标值 max_data1 = df['data1'].max() min_data2 = df['data2'].min() name_val = df['name'].iloc[0] # 生成新DataFrame new_df = pd.DataFrame([{ 'data1': max_data1, 'data2': min_data2, 'name': name_val }])
注意:你之前尝试的
df[data1].max()是错误写法,列名字符串需要加引号,正确写法为df['data1'].max()
方案2:通用场景(支持多name分组统计)
如果你的数据包含多个不同name,需要每个name分别取对应data1最大值、data2最小值,直接用分组聚合即可:
new_df = df.groupby('name', as_index=False).agg( data1 = ('data1', 'max'), data2 = ('data2', 'min') )
该写法无需提前判断name是否唯一,单name、多name场景都能输出正确结果。
内容的提问来源于stack exchange,提问作者Shrilaxmi M S
相关产品推荐
相关产品推荐

