簡體   English   中英

從數據框中獲取最新響應

[英]Get most recent responses from a dataframe

我有一個我需要循環的數據集,它返回一個數據幀,其中只包含每個受訪者的最新回復,但我無法解決它,你能幫我嗎? 數據集是這樣的:

respondent         date         answer  
     1          22/08/2021         1
     1          23/08/2021         3
     1          25/08/2021         1
     2          22/08/2021         2
     2          22/08/2021         3
     2          23/08/2021         1
     3          22/08/2021         2
     3          24/08/2021         3
     4          22/08/2021         2
     4          25/08/2021         3

假設我們有以下數據框:

import pandas as pd

df = pd.DataFrame(
    {
        "respondent": [1, 1, 1, 2, 2, 3, 4, 4],
        "date": pd.date_range(start="1/1/2018", end="1/08/2018"),
        "answer": [2, 3, 1, 1, 2, 2, 3, 1],
    }
)

看起來像:

   respondent       date  answer
0           1 2018-01-01       2
1           1 2018-01-02       3
2           1 2018-01-03       1
3           2 2018-01-04       1
4           2 2018-01-05       2
5           3 2018-01-06       2
6           4 2018-01-07       3
7           4 2018-01-08       1

你需要的是:

  1. 由受訪者分組
  2. 獲取他最近的日期(最大日期)
  3. 找到具有上一步日期的原始數據框的行

這可以通過以下方式完成:

df_new = df[df.groupby('respondent').date.transform('max') == df['date']]

並將導致:

   respondent       date  answer
2           1 2018-01-03       1
4           2 2018-01-05       2
5           3 2018-01-06       2
7           4 2018-01-08       1

暫無
暫無

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

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