2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊
您可以創(chuàng)建與第一行相同的填充值,我們使用shift+concat
values_to_fill = pd.Series(np.arange(1,4),index=np.arange(1,4)).reindex(np.arange(1,7)).ffill().astype(int)
pd.concat([values_to_fill.shift(x) for x in range(num_rows)],axis = 1 ).T.fillna(0)
1 2 3 4 5 6
0 1.0 2.0 3.0 3.0 3.0 3.0
1 0.0 1.0 2.0 3.0 3.0 3.0
2 0.0 0.0 1.0 2.0 3.0 3.0
3 0.0 0.0 0.0 1.0 2.0 3.0

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊
使用列表理解:
A = [1, 2, 3, 3, 3, 3]
res = pd.DataFrame([A] + [[0]*i + A[:-i] for i in range(1, 3)],
columns=range(1, 7))
print(res)
1 2 3 4 5 6
0 1 2 3 3 3 3
1 0 1 2 3 3 3
2 0 0 1 2 3 3
添加回答
舉報(bào)