Python Groupby和filter在pandas中,其中所有列在完成后都保留

Python Groupby和filter在pandas中,其中所有列在完成后都保留,python,pandas,Python,Pandas,我一直在尝试在groupby调用后过滤pandas数据帧,但尚未达到预期的结果 我的数据名为rd_test_AM: 我正在用(年、月、日、道琼斯指数)进行分组通话,这样我就可以通过唯一的日期找到最大瞬时峰值。我已经成功地运行了代码,可以找到最大峰值,但是小时列、集成负载和比率列被删除 我正在寻找一种方法,以找到在我的数据帧中每个日期的最大瞬时峰值。我得到的最接近的代码是: rd_test_AM['max_peak'] = rd_test_AM.groupby(['Year','Month','

我一直在尝试在groupby调用后过滤pandas数据帧,但尚未达到预期的结果

我的数据名为rd_test_AM:

我正在用(年、月、日、道琼斯指数)进行分组通话,这样我就可以通过唯一的日期找到最大瞬时峰值。我已经成功地运行了代码,可以找到最大峰值,但是小时列、集成负载和比率列被删除

我正在寻找一种方法,以找到在我的数据帧中每个日期的最大瞬时峰值。我得到的最接近的代码是:

rd_test_AM['max_peak'] = rd_test_AM.groupby(['Year','Month','Day','DOW'])['instantaneous_peak'].transform('max')
这就是结果:

可以看到,max_峰值是跨现有行打印的。如何压缩数据帧,使其按max(瞬时_峰值)过滤,并同时显示该行中的其余值(列)


谢谢

只要您的瞬时峰值是唯一的(它们看起来都是唯一的),您就可以执行以下操作:

rd_test_AM[rd_test_AM['instantaneous_peak'].isin(rd_test_AM.groupby(['Year','Month','Day','DOW'])['instantaneous_peak'].max().tolist())]

你能把数据添加为文本吗?只需
打印(df.head(10))
并按原样粘贴,还请添加您的预期输出,以提供样本数据供我们重现结果。您可以在
groupby
后面加一个
pd.merge
@datanoveler,我尝试过这样做,但是print函数会连接我的列,因此不会显示所有列。有没有一种简单的方法来获取我的数据框,以便将其发布到这里?我做了一些搜索,但什么也找不到。IIUC,你可以在调用你的groupby transform
df后删除重复项。删除重复项(子集['Year'、'Month'、'Day'、'DOW'、'max\u peak')
@user3720887尝试
df.head(10)。到剪贴板(False)
将内容复制到剪贴板并粘贴到你的问题中