首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pandas按列分组,查找多列的最小值,并为组中的最小行创建新列

在pandas中,按列分组并查找多列的最小值,然后为组中的最小行创建新列,可以通过以下步骤实现:

  1. 导入pandas库:
代码语言:txt
复制
import pandas as pd
  1. 创建一个DataFrame对象,假设为df,包含需要分组和查找最小值的多列数据。
  2. 使用groupby()方法按列进行分组,并使用min()方法查找每个组中多列的最小值。将结果存储在一个新的DataFrame对象中,假设为grouped_df。
代码语言:txt
复制
grouped_df = df.groupby('列名').min()
  1. 使用merge()方法将原始DataFrame对象和grouped_df合并,根据列名进行匹配,并将匹配结果存储在一个新的DataFrame对象中,假设为merged_df。
代码语言:txt
复制
merged_df = pd.merge(df, grouped_df, on='列名', suffixes=('', '_最小值'))
  1. 在merged_df中,可以通过访问新创建的列来获取每个组中的最小行。

下面是一个完整的示例代码:

代码语言:txt
复制
import pandas as pd

# 创建示例DataFrame对象
data = {'列名1': [1, 2, 3, 4, 5],
        '列名2': [6, 7, 8, 9, 10],
        '列名3': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)

# 按列进行分组并查找最小值
grouped_df = df.groupby('列名1').min()

# 合并原始DataFrame和最小值DataFrame
merged_df = pd.merge(df, grouped_df, on='列名1', suffixes=('', '_最小值'))

# 打印结果
print(merged_df)

这样,你就可以得到一个包含新列的DataFrame对象,其中新列包含每个组中的最小行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

groupby函数详解

这是由于变量grouped是一个GroupBy对象,它实际上还没有进行任何计算,只是含有一些有关分组键df[‘key1’]的中间数据而已,然后我们可以调用配合函数(如:.mean()方法)来计算分组平均值等。   因此,一般为方便起见可直接在聚合之后+“配合函数”,默认情况下,所有数值列都将会被聚合,虽然有时可能会被过滤为一个子集。   一般,如果对df直接聚合时, df.groupby([df['key1'],df['key2']]).mean()(分组键为:Series)与df.groupby(['key1','key2']).mean()(分组键为:列名)是等价的,输出结果相同。   但是,如果对df的指定列进行聚合时, df['data1'].groupby(df['key1']).mean()(分组键为:Series),唯一方式。 此时,直接使用“列名”作分组键,提示“Error Key”。 注意:分组键中的任何缺失值都会被排除在结果之外。

01
领券