gpt4 book ai didi

python - 数据框 Pandas 中按最大周期分组的问题

转载 作者:行者123 更新时间:2023-12-04 02:32:48 27 4
gpt4 key购买 nike

我仍然是 python 的新手,我在尝试对一些数据进行分组以显示具有最高(最大)日期的记录时遇到问题,数据框如下:

enter image description here... enter image description here

我正在尝试以下操作:

df_2 = df.max(axis = 0) 
df_2 = df.periodo.max()
df_2 = df.loc[df.groupby('periodo').periodo.idxmax()]

它给了我返回:

Timestamp('2020-06-01 00:00:00')

periodo 2020-06-01 00:00:00
valor 3.49136

虽然 'periodo' 的值是正确的,但 'valor' 的值不正确,因为我需要获取相应的完整记录('period' 和 'value'),而不是每个记录的最大值。我已经尝试了其他方法,但我无法达到我想要的......

我需要做什么?

提前谢谢你,我会注意你的回答!

问候!

最佳答案

# import packages we need, seed random number generator
import pandas as pd
import datetime
import random
random.seed(1)

创建示例数据框

dates = [single_date for single_date in (start_date + datetime.timedelta(n) for n in range(day_count))]
values = [random.randint(1,1000) for _ in dates]
df = pd.DataFrame(zip(dates,values),columns=['dates','values'])

df 将是:

    dates    values
0 2020-01-01 389
1 2020-01-02 808
2 2020-01-03 215
3 2020-01-04 97
4 2020-01-05 500
5 2020-01-06 30
6 2020-01-07 915
7 2020-01-08 856
8 2020-01-09 400
9 2020-01-10 444

选择每列中条目数最高的行

你可以这样做:

df[df['dates'] == df['dates'].max()]

(或者,如果想使用idxmax,可以这样做:df.loc[[df['dates'].idxmax()]])

返回:

    dates   values
9 2020-01-10 444

即这是最新日期的行

&

df[df['values'] == df['values'].max()]

(或者,如果想再次使用 idxmax,可以这样做:df.loc[[df['values'].idxmax()]] - 如 Scott Bostonanswer 。)

    dates   values
6 2020-01-07 915

即这是 values 列中具有最高值的行

Reference

关于python - 数据框 Pandas 中按最大周期分组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63206328/

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