2 回答

TA貢獻1803條經驗 獲得超3個贊
1.pandas方法
使用fillna和cumsum:
df1.loc[0, 'days'] = df2['days'].max()
df1['days'] = df1['days'].fillna(1).cumsum()
date prod days
0 2001-01-01 800 1175.0
1 2001-01-02 900 1176.0
2 2001-01-03 1200 1177.0
3 2001-01-04 700 1178.0
4 2001-01-05 600 1179.0
2.numpy方法
df1['days'] = np.cumsum(np.append([df2['days'].max()], np.ones(len(df1)-1)))
date prod days
0 2001-01-01 800 1175.0
1 2001-01-02 900 1176.0
2 2001-01-03 1200 1177.0
3 2001-01-04 700 1178.0
4 2001-01-05 600 1179.0
3. 不cumsum帶for loop
(不是優選的)
values = []
value = df2['days'].max()
for x in range(len(df1)):
values.append(value)
value += 1
df1['days'] = values
date prod days
0 2001-01-01 800 1175
1 2001-01-02 900 1176
2 2001-01-03 1200 1177
3 2001-01-04 700 1178
4 2001-01-05 600 1179

TA貢獻1860條經驗 獲得超9個贊
您可以插入范圍為 =(df2 天 max+1 到 df2 天 max+行數)的列。第一個參數 len(df1.columns) 是在最后加上這一列,不影響邏輯
df1.insert(len(df1.columns),'days',range(df2.days.max()+1, df2.days.max()+1+len(df1)))
date prod days
0 2001-01-01 800 1175
1 2001-01-02 900 1176
2 2001-01-03 1200 1177
3 2001-01-04 700 1178
4 2001-01-05 600 1179
添加回答
舉報