gpt4 book ai didi

python - 按组和时间戳排序 Pandas DataFrame

转载 作者:行者123 更新时间:2023-12-03 16:01:29 24 4
gpt4 key购买 nike

我有以下示例数据帧

             Timestamp Item Char  Value
4 1/7/2020 1:22:22 AM B C.B 3.2
0 1/7/2020 1:23:23 AM A C.A 1.0
2 1/7/2020 1:23:23 AM A C.B 1.3
1 1/7/2020 1:23:24 AM A C.A 2.0
5 1/7/2020 1:23:29 AM B C.B 3.0
3 1/7/2020 1:25:23 AM B C.B 2.0
我想添加一个新列,该列根据时间戳告诉 Item 出现在同一个 Char 中的顺序。特别是,我想将 1 分配给最后一个值,将 2 分配给倒数第二个值,依此类推。
结果应该如下所示
             Timestamp Item Char  Value   Order
0 1/7/2020 1:23:23 AM A C.A 1.0 2
1 1/7/2020 1:23:24 AM A C.A 2.0 1
2 1/7/2020 1:23:23 AM A C.B 1.3 1
3 1/7/2020 1:22:22 AM B C.B 3.2 3
4 1/7/2020 1:23:29 AM B C.B 3.0 2
5 1/7/2020 1:25:23 AM B C.B 2.0 1
如您所见,B 项在 Char C.B. 中多次出现,我会根据时间戳将 1 分配给最近的值。
我的想法是按Item和Char对DataFrame进行分组,然后按时间戳降序排列每组的行,最后将1分配给第一行,2分配给第二行,依此类推。但我实际上不知道如何做到这一点。
你能帮我吗?
非常感谢!

最佳答案

让我们 groupby 栏目TimestampCharItem并计算 rank 使用 method=first ,然后使用 sort_values 根据 Char 对数据框进行排序和 Item :

df['Order'] = pd.to_datetime(df['Timestamp'])\
.groupby([df['Char'], df['Item']])\
.rank(method='first', ascending=False)

df = df.sort_values(['Char', 'Item'], ignore_index=True)
             Timestamp Item Char  Value  Order
0 1/7/2020 1:23:23 AM A C.A 1.0 2.0
1 1/7/2020 1:23:24 AM A C.A 2.0 1.0
2 1/7/2020 1:23:23 AM A C.B 1.3 1.0
3 1/7/2020 1:22:22 AM B C.B 3.2 3.0
4 1/7/2020 1:23:29 AM B C.B 3.0 2.0
5 1/7/2020 1:25:23 AM B C.B 2.0 1.0

关于python - 按组和时间戳排序 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64195126/

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