繁体   English   中英

Pandas 通过对日期列进行排序来使用 groupby 数据框添加列

[英]Pandas add column using groupby dataframe by sorting date column

我有以下数据框:

ID 日期
1 5/4/2021 8:17
1 2021/5/25 6:20
1 5/2/2021 22:15
2 2021/7/12 2:20
2 2021/7/4 21:28
2
2

对于重复的 ID,我想将日期从旧到最新排序,然后添加一个新列,该列根据日期标记该 ID 的增量索引。 如果没有任何 ID 的日期,只需添加第一个索引。 以下是我希望我的新数据框的外观。

ID 日期 指数
1 5/2/2021 22:15 1
1 5/4/2021 8:17 2
1 2021/5/25 6:20 3
2 2021/7/4 2:20 1
2 2021/7/12 21:28 2
2 1
2 1

首先使用to_datetimeDataFrame.sort_values然后GroupBy.cumcountnumpy.where设置1如果Date缺少值:

df['Date'] = pd.to_datetime(df['Date'])
df = df.sort_values(['ID','Date'], ignore_index=True)

df['Index'] = np.where(df['Date'].notna(), df.groupby('ID').cumcount().add(1), 1)
print (df)
   ID                Date  Index
0   1 2021-05-02 22:15:00      1
1   1 2021-05-04 08:17:00      2
2   1 2021-05-25 06:20:00      3
3   2 2021-07-04 21:28:00      1
4   2 2021-07-12 02:20:00      2
5   2                 NaT      1
6   2                 NaT      1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM