2017-08-22 17 views

回答

2

您可以移動最後一列以擺脫第一個值,然後放下最後一行。

df.assign(E=df.E.shift(-1)).drop(df.index[-1]) 

MVCE:

pd.np.random.seed = 123 
df = pd.DataFrame(pd.np.random.randint(0,100,(10,5)),columns=list('ABCDE')) 

輸出:

A B C D E 
0 91 83 40 17 94 
1 61 5 43 87 48 
2 3 69 73 15 85 
3 99 53 18 95 45 
4 67 30 69 91 28 
5 25 89 14 39 64 
6 54 99 49 44 73 
7 70 41 96 51 68 
8 36 3 15 94 61 
9 51 4 31 39 0 

df.assign(E=df.E.shift(-1)).drop(df.index[-1]).astype(int) 

輸出:

A B C D E 
0 91 83 40 17 48 
1 61 5 43 87 85 
2 3 69 73 15 45 
3 99 53 18 95 28 
4 67 30 69 91 64 
5 25 89 14 39 73 
6 54 99 49 44 68 
7 70 41 96 51 61 
8 36 3 15 94 0 

或在兩個步驟:

df[df.columns[-1]] = df[df.columns[-1]].shift(-1) 
df = df[:-1] 
+0

這兩步完美無缺!謝謝! – xion