簡體   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