pandas 根据差值递增行中的每个日期值,并根据差值创建重复行

sqyvllje  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(95)

我有一个包含开始日期和结束日期列的数据集,我必须根据日期差异创建重复行,并根据差异在每行中增加开始日期。我可以根据差异创建重复行,但不能增加开始日期,因为差异在每个重复行中是固定的

for s in range(0,len(Fortnight_1)):
    if Fortnight_1['Date_Difference'].iloc[s]>0:
        for i in range(0,int(Fortnight_1['Date_Difference'].iloc[s])):
            df = df.append(Fortnight_1.iloc[s])

通过上面的代码,我已经基于Date_Difference复制了行。我需要将日期放入日期列:

我们需要提到的日期列,但我不能增加重复行中的日期。

bqf10yzr

bqf10yzr1#

用途:

#convert to datetimes
df['Start Date'] = pd.to_datetime(df['Start Date'])
df['End Date'] = pd.to_datetime(df['End Date'])

df['Date_difference'] = df['End Date'].sub(df['Start Date']).dt.days

#repeat indices by Date_difference
df1 = df.loc[df.index.repeat(df['Date_difference'] + 1)]
        

#create ecounter converted to days timedeltas
s = pd.to_timedelta(df1.groupby(level=0).cumcount(), unit='d')

#add timedeltas to Start Date and convert to DatetimeIndex
out = df1.assign(Dates = df1['Start Date'].add(s))
      
#if need days instead datetimes
out = df1.assign(Dates = df1['Start Date'].add(s).dt.day)

相关问题