簡體   English   中英

通過在 Pandas 中使用特定的 groupby 條件循環從行中獲取值

[英]Fetch value from a row by looping with certain groupby condition in Pandas

我有一個看起來像這樣的 dataframe:

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

我需要為每個用戶獲取第二個值(這意味着用戶57322.0 ,用戶5575.0 ,依此類推)。

我是 python 的新手,無法理解 groupby iterrows 或其他。 任何人都可以幫忙嗎?

首先確保數據按預期排序:

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

然后只獲取每個工作人員的第二行(之前的那個是相同的uid ,但之前的那個不是相同的uid )使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM