如何从一个组中获取一列的第一行和另一列的最后一行

How to grab the first row from a column and last row from another column from a group by

我有一个包含 3 列的 df。租户,开始和结束为列

Tenant Start End
x 10 20
x 20 30
x 30 40
y 15 30
y 30 45

我想按租户分组,从开始获取第一个值,从结束到获取最后一个值。结果 df 应如下所示:

Tenant Start End
x 10 40
y 15 45

这是我的代码,但不正确:

df_login_merge_final = df_login_merge_final.groupby('tenant').first().reset_index()
df_login_summary = df_login_merge_final[['tenant','outage_start']]
df_login_merge_final_1 = df_login_merge_final.groupby('tenant').last().reset_index()
df_login_summary_1 = df_login_merge_final_1[['tenant','outage_end']]
df_login_summary_master = pd.merge(df_login_summary,df_login_summary_1,on=['tenant'],how ='inner')

您可以使用一个 groupby 函数并在您需要的每一列上应用聚合函数 minmax 使用此语法:

df.groupby(['Tenant']).agg({'Start': min, 'End': max})