[英]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_datetime
和DataFrame.sort_values
然后GroupBy.cumcount
和numpy.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.