gpt4 book ai didi

python - 如何在现有列的基础上添加新列

转载 作者:行者123 更新时间:2023-12-01 09:03:42 25 4
gpt4 key购买 nike

我有这样的数据框

   id1         id2          Entry_Date
0 5344265358 55111095504 2018-07-13 00:00:00
1 5344265358 55111095504 2018-07-13 00:00:00
2 5344265358 55111095501 2018-08-13 00:00:00
3 5344265358 55111095502 2018-07-14 00:00:00
4 5441440119 55111366675 2018-08-13 00:00:00
5 5441440119 55111366676 2018-08-20 00:00:00
6 5441440119 55111366677 2018-09-21 00:00:00
7 5441440119 55111366677 2018-09-21 00:00:00

我想根据现有列添加新列

我想按 id1id2 进行分组,然后根据日期进行排序,然后将下一组的日期分配给上一组,但如您所见,数据有重复

     id1           id2          Entry_Date          Next_Date
0 5344265358 55111095504 2018-07-13 00:00:00 2018-07-14 00:00:00
1 5344265358 55111095504 2018-07-13 00:00:00 2018-07-14 00:00:00
2 5344265358 55111095501 2018-08-13 00:00:00 NAN
3 5344265358 55111095502 2018-07-14 00:00:00 2018-08-13 00:00:00
4 5441440119 55111366675 2018-08-13 00:00:00 2018-08-20 00:00:00
5 5441440119 55111366676 2018-08-20 00:00:00 2018-09-21 00:00:00
6 5441440119 55111366677 2018-09-21 00:00:00 NAN
7 5441440119 55111366677 2018-09-21 00:00:00 NAN

最佳答案

我认为需要:

df['Entry_Date'] = pd.to_datetime(df['Entry_Date'])

df1 = (df.sort_values('Entry_Date')
.drop_duplicates(['id1','id2'])
.rename(columns={'Entry_Date':'Next_Date'}))
df1['Next_Date'] = df1['Next_Date'].shift(-1)
print (df1)
id1 id2 Next_Date
0 5344265358 55111095504 2018-07-14
3 5344265358 55111095502 2018-08-13
2 5344265358 55111095501 2018-08-13
4 5441440119 55111366675 2018-08-20
5 5441440119 55111366676 2018-09-21
6 5441440119 55111366677 NaT

df = df.merge(df1, on=['id1','id2'], how='left')
print (df)
id1 id2 Entry_Date Next_Date
0 5344265358 55111095504 2018-07-13 2018-07-14
1 5344265358 55111095504 2018-07-13 2018-07-14
2 5344265358 55111095501 2018-08-13 2018-08-13
3 5344265358 55111095502 2018-07-14 2018-08-13
4 5441440119 55111366675 2018-08-13 2018-08-20
5 5441440119 55111366676 2018-08-20 2018-09-21
6 5441440119 55111366677 2018-09-21 NaT
7 5441440119 55111366677 2018-09-21 NaT

关于python - 如何在现有列的基础上添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52252528/

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