Python 创建日期等于+的重复行;原始日期的1天
我的数据表如下所示:Python 创建日期等于+的重复行;原始日期的1天,python,pandas,Python,Pandas,我的数据表如下所示: Date Name 12/1/2020 Golikeri, Dave 12/2/2020 Mewman, Tim 12/6/2020 Nang, Bob 12/9/2020 Book, Tom Date Name 12/1/2020 Golikeri, Dave 12/2/2020 Golikeri, Dave 12/2/2020 Mewman
Date Name
12/1/2020 Golikeri, Dave
12/2/2020 Mewman, Tim
12/6/2020 Nang, Bob
12/9/2020 Book, Tom
Date Name
12/1/2020 Golikeri, Dave
12/2/2020 Golikeri, Dave
12/2/2020 Mewman, Tim
12/3/2020 Mewman, Tim
12/6/2020 Nang, Bob
12/7/2020 Nang, Bob
12/9/2020 Book, Tom
12/10/2020 Book, Tom
对于数据表中的每个记录,我希望创建副本,但副本日期将等于原始日期后的第二天。例如,新表如下所示:
Date Name
12/1/2020 Golikeri, Dave
12/2/2020 Mewman, Tim
12/6/2020 Nang, Bob
12/9/2020 Book, Tom
Date Name
12/1/2020 Golikeri, Dave
12/2/2020 Golikeri, Dave
12/2/2020 Mewman, Tim
12/3/2020 Mewman, Tim
12/6/2020 Nang, Bob
12/7/2020 Nang, Bob
12/9/2020 Book, Tom
12/10/2020 Book, Tom
我甚至不知道从哪里开始问这个问题,但希望有人能慷慨地引导我走上正确的道路——谢谢 您可以使用pd.concat
:
df['Date'] = pd.to_datetime(df['Date'])
out = (pd.concat([df, df.assign(Date=df['Date']+pd.Timedelta('1D')) ] )
.sort_index()
)
输出:
Date Name
0 2020-12-01 Golikeri, Dave
0 2020-12-02 Golikeri, Dave
1 2020-12-02 Mewman, Tim
1 2020-12-03 Mewman, Tim
2 2020-12-06 Nang, Bob
2 2020-12-07 Nang, Bob
3 2020-12-09 Book, Tom
3 2020-12-10 Book, Tom
您可以使用pd.concat
:
df['Date'] = pd.to_datetime(df['Date'])
out = (pd.concat([df, df.assign(Date=df['Date']+pd.Timedelta('1D')) ] )
.sort_index()
)
输出:
Date Name
0 2020-12-01 Golikeri, Dave
0 2020-12-02 Golikeri, Dave
1 2020-12-02 Mewman, Tim
1 2020-12-03 Mewman, Tim
2 2020-12-06 Nang, Bob
2 2020-12-07 Nang, Bob
3 2020-12-09 Book, Tom
3 2020-12-10 Book, Tom
请问到目前为止你试过什么代码?你一直在,所以你应该已经知道,我们希望看到你的工作努力。谢谢分享您的工作成果。@JoeFerndz老实说,我还没有任何代码,我看到了这篇文章,但只是把自己陷入了更深的困惑中。是的,复制行,然后对于第二个值,您可以始终使用timedelta。备选,是Quang所做的。到目前为止您尝试了什么代码?你一直在,所以你应该已经知道,我们希望看到你的工作努力。谢谢分享您的工作成果。@JoeFerndz老实说,我还没有任何代码,我看到了这篇文章,但只是把自己陷入了更深的困惑中。是的,复制行,然后对于第二个值,您可以始终使用timedelta。另一种方法是Quang所做的。pd.Timedelta('1D')是一种方法。我们还可以重复df,然后用Timedelta替换重复的行@JoeFerndz当然可以,那也行。谢谢-太好了!出于我自己的学习目的,你能解释一下concat和assign命令在这段代码中是如何工作的吗?assign是sort hand fordf1=df.copy();df1['Date']=df['Date']+…
和concat
只是将帧堆叠在彼此的顶部。pd.Timedelta('1D')是一种方法。我们还可以重复df,然后用Timedelta替换重复的行@JoeFerndz当然可以,那也行。谢谢-太好了!出于我自己的学习目的,你能解释一下concat和assign命令在这段代码中是如何工作的吗?assign是sort hand fordf1=df.copy();df1['Date']=df['Date']+…
和concat
只是将帧堆叠在彼此的顶部。