gpt4 book ai didi

python - 获取数据框中每个用户发生类别更改的日期

转载 作者:行者123 更新时间:2023-12-03 21:05:57 25 4
gpt4 key购买 nike

我正在使用 Pandas ==1.2.1
雷:

x = pd.DataFrame({"date":["20201211", "20201211", "20201212", "20201222", "20201222","20201223",
"20201211", "20201211", "20201212", "20201222", "20201222"],
"userid":["A", "A", "A", "A", "A", "A","B", "B", "B", "B", "B"],
"category":[1,1,2,2,2,1, 33, 33, 33, 34, 34]})
看起来像这样:
    date    userid  category
0 20201211 A 1
1 20201211 A 1
2 20201212 A 2
3 20201222 A 2
4 20201222 A 2
5 20201223 A 1
6 20201211 B 33
7 20201211 B 33
8 20201212 B 33
9 20201222 B 34
10 20201222 B 34
我想要做的是获取每个用户的类别更改时的日期
所以所需的数据框应该是这样的:
user         cat_changed             changed_cat
A [20201212, 20201223] [2, 1]
B [20201222] [34]
我试过按用户名、类别、日期分组,但从那里卡住了......

最佳答案

您可以先使用 diff() 获取过渡点。在 category ,然后将这些转换和聚合索引为 list :

>>> transitions = x.groupby('userid').category.diff().fillna(0).ne(0)
>>> x[transitions].groupby('userid').agg(list)

date category
userid
A [20201212, 20201223] [2, 1]
B [20201222] [34]

关于python - 获取数据框中每个用户发生类别更改的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66648842/

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