gpt4 book ai didi

python : Group rows in dataframe and select abs max value in groups using pandas groupby

转载 作者:行者123 更新时间:2023-11-28 17:16:14 26 4
gpt4 key购买 nike

我正在寻找以下问题的解决方案:

我有一个 pandas 数据框(版本 0.12.0),例如:

df = pd.DataFrame({
'Time' : [0.0, 0.0, 0.1, 0.2],
'Signal_1' : [0, 1, 0, 3],
'Signal_2' : [1, -1.5, -3, 0],
})
>>> print df

Signal_1 Signal_2 Time
0 0 1.0 0.0
1 1 -1.5 0.0
2 0 -3.0 0.1
3 3 2.0 0.2

现在,我使用 groupby 合并具有相同时间戳的行(在本例中为第一行和第二行)。但是合并的行应该得到组的绝对最大值。因此,我正在搜索一个函数 absmax() 来获取以下分组数据框:

>>> df = df.groupby('Time').absmax()
Signal_1 Signal_2 Time
0 1 -1.5 0.0
1 0 -3.0 0.1
2 3 2.0 0.2

编辑:谢谢 ;-)

最佳答案

你真的很亲密-需要idxmax对于指数:

df = df.loc[df.groupby('Signal_1')['Time'].idxmax()]
print (df)
Signal_1 Signal_2 Time
2 0 -3.0 0.1
1 1 -1.5 0.0
3 3 2.0 0.2

或者可能需要:

df = df.loc[df.groupby('Time')['Time'].apply(lambda x: x.abs().idxmax())]
print (df)
Signal_1 Signal_2 Time
0 0 1.0 0.0
2 0 -3.0 0.1
3 3 2.0 0.2

或者:

df = df.loc[df.groupby('Time')['Time'].idxmax()]
print (df)
Signal_1 Signal_2 Time
0 0 1.0 0.0
2 0 -3.0 0.1
3 3 2.0 0.2

关于 python : Group rows in dataframe and select abs max value in groups using pandas groupby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43936521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com