gpt4 book ai didi

python - 使用 Pandas 在 Python 中按日期计数序列

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:17 26 4
gpt4 key购买 nike

我有一个数据框:

Data_c       User  Rank  sequence_in_progress

15-03-2017 2 0 0
15-03-2017 1 1 0
16-03-2017 2 0 0
17-03-2017 2 1 0
18-03-2017 1 0 0

现在我将替​​换数据框中的“sequence_in_progress”,探索它,序列考虑加入日期和已加入的用户。

基本上,结果应该是:

  Data_c     User  Rank  sequence_in_progress

15-03-2017 2 0 1
15-03-2017 1 1 1
16-03-2017 2 0 2
17-03-2017 2 1 3
18-03-2017 1 0 2

基本上,“sequence_in_progress”表示用户“x”在给定日期内选择某项内容的顺序。

预先感谢您的帮助

最佳答案

我会使用 pandas groupby 。请注意,此解决方案适用于任意数量的用户。

cc = ['Data_c', 'User', 'Rank']
vals = [['15-03-2017', 2, 0],
['15-03-2017', 1, 1],
['16-03-2017', 2, 0],
['17-03-2017', 2, 1],
['18-03-2017', 1, 0]]

frame = pd.DataFrame(vals, columns = cc)

# Crete the sequence (1,...,N) for each user
users_sequence = [group.assign(sequence = range(1, len(group)+1))
for key, group in frame.groupby('User')]

# Put everything together, using reindex to have same order as the original frame
result = pd.concat(users_sequence, axis = 0).reindex(frame.index)

Data_c User Rank sequence
0 15-03-2017 2 0 1
1 15-03-2017 1 1 1
2 16-03-2017 2 0 2
3 17-03-2017 2 1 3
4 18-03-2017 1 0 2

关于python - 使用 Pandas 在 Python 中按日期计数序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203422/

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