通过循环中的特定groupby条件从行中获取值

2024-06-23 03:28:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据帧:

uid date        value
573 2019-09-01  0.0
573 2019-09-23  22.0
557 2019-08-20  0.0
557 2019-08-25  5.0
557 2019-09-05  11.0
556 2019-08-24  0.0
556 2019-09-05  12.0
550 2019-08-27  0.0
550 2019-08-29  2.0
550 2019-09-11  13.0
532 2019-07-29  0.0
532 2019-07-31  2.0

我需要为每个用户获取第二个值(对于用户573,这意味着22.0,对于用户557,这意味着5.0,等等)

我是python新手,不能理解GroupByIterrows或其他。有人能帮忙吗


Tags: 数据用户uiddatevalue新手groupbyiterrows
1条回答
网友
1楼 · 发布于 2024-06-23 03:28:13

首先,确保数据按照预期的顺序进行排序,包括:

df = df.sort_values(['uid', 'date'])

然后,要仅获取每个worker的第二行(前面的一行是相同的uid,但前面的一行不是相同的uid),请使用:

df[(df['uid'] == df['uid'].shift()) & (df['uid'] != df['uid'].shift(2))][['uid', 'value']]

相关问题 更多 >

    热门问题