[英]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
你需要的是:
這可以通過以下方式完成:
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.