2017-05-26 59 views
2

我原來的數據幀(DF):熊貓據幀 - 移行下來,保持數據

column1 column2 
0 1  a 
1 2  b 
2 3  c 
3 4  d 
4 5  e 
5 6  f 

我想6,像這樣的值向下移位:

column1 column2 
0  
1  
2  
3  
4  
5  
6 1  a 
7 2  b 
8 3  c 
9 4  d 
10 5  e 
11 6  f 

當我使用df = df.shift(6),我最終失去了數據。

我發現這個職位(How to shift a column in Pandas DataFrame without losing value),但它似乎只我怎麼能轉移多點下來,同時保持數據的工作,如果該值由1

下移?

回答

0

您可以嘗試

df.index = df.index+6 
df = df.reindex(np.arange(12)) 

    column1 column2 
0 NaN  NaN 
1 NaN  NaN 
2 NaN  NaN 
3 NaN  NaN 
4 NaN  NaN 
5 NaN  NaN 
6 1.0  a 
7 2.0  b 
8 3.0  c 
9 4.0  d 
10 5.0  e 
11 6.0  f 
+1

善於思考! – Allen

+0

謝謝,我最終用'df = df.reindex(np.arange(max(df.index)+1))'替換'df = df.reindex(np.arange(12))'以允許數據集是動態的(我認爲這是工作)。 – andyb88

+0

很高興它工作:) – Vaishali

0

shift不會改變數據框的形狀,您正在尋找的是在數據框前添加一些額外的行,對於您顯示的最簡單的情況(即索引由整數組成),您可以操作指標如下達到你需要的東西:

df.index = df.index + 6 
df.reindex(range(6) + df.index.tolist())  

#column1 column2 
#0 NaN NaN 
#1 NaN NaN 
#2 NaN NaN 
#3 NaN NaN 
#4 NaN NaN 
#5 NaN NaN 
#6 1.0 a 
#7 2.0 b 
#8 3.0 c 
#9 4.0 d 
#10 5.0 e 
#11 6.0 f