gpt4 book ai didi

python - Pandas :分组并在一个组内切割

转载 作者:行者123 更新时间:2023-11-28 16:22:19 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示:

userid   name       date
1 name1 2016-06-04
1 name2 2016-06-05
1 name3 2016-06-04
1 name1 2016-06-06
2 name23 2016-06-01
2 name2 2016-06-01
3 name1 2016-06-03
3 name6 2016-06-03
3 name12 2016-06-03
3 name65 2016-06-04

所以,我想只保留用户的行直到第一次约会事件,并删除其余部分。

最终的 df 如下:

userid   name       date
1 name1 2016-06-04
1 name2 2016-06-04
2 name23 2016-06-01
2 name2 2016-06-01
3 name1 2016-06-03
3 name6 2016-06-03
3 name12 2016-06-03



userid int64
name object
time object

时间列中数据点的type()是一个datetime.date

因此,任务将涉及根据用户 ID 分组根据日期排序,然后仅保留第一个(/最早)日期的行

最佳答案

您可以先按 sort_valuesdate 列对 DataFrame 进行排序然后 groupbyapply boolean indexing - 获取第一个值所在的所有行:

df = df.sort_values('date')
.groupby('userid')
.apply(lambda x: x[x.date == x.date.iloc[0]])
.reset_index(drop=True)

print (df)
userid name date
0 1 name1 2016-06-04
1 1 name3 2016-06-04
2 2 name23 2016-06-01
3 2 name2 2016-06-01
4 3 name1 2016-06-03
5 3 name6 2016-06-03
6 3 name12 2016-06-03

关于python - Pandas :分组并在一个组内切割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362151/

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