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
添加回答
举报
