2015-05-21 92 views
1

蟒蛇和熊貓的新手。我如何從一列中的特定行獲取數據?我試圖使用.shift,但只能得到整列或行上下移動。如何將數據從一列移動到另一列的特定行?

輸入:

import pandas as pd 
​ 
df = pd.DataFrame({'data1':['a','a','b','b','a'], 
        'data2':['one','two','one','two','one'], 
        'data3':['65168','65498.5','nan','nan','nan'], 
        'data4':['3645','95324','0.35468','.36546','16567']}) 
df 

Out[5]: 
    data1 data2 data3 data4 
0 a one 65168 3645 
1 a two 65498.5 95324 
2 b one nan  0.35468 
3 b two nan  0.36546 
4 a one nan  16567 

說我想在行2,3,4數據移動,列 '數據4' 的行2,3,4列 'DATA3' ONLY(.shift會據我可以告訴)

移動整個行或列的全部期望的結果 -

data1 data2 data3 data4 
0 a one 65168 3645 
1 a two 65498.5 95324 
2 b one 0.35468 nan 
3 b two 0.36546 nan 
4 a one 16567 nan 

的實際數據會從先前生成的.xlsx文件讀取。我只需要將數據從一列移動到另一列。

謝謝你,祝你有美好的一天!

回答

1

可以shift逐列通過傳遞axis=1loc與行標籤選擇和列選擇將確保只有那些行和列被修改:

In [12]: 

df.loc[2:,['data3','data4']] = df.loc[2:,['data3','data4']].shift(-1,axis=1) 
df 
Out[12]: 
    data1 data2 data3 data4 
0  a one 65168 3645 
1  a two 65498.5 95324 
2  b one 0.35468 NaN 
3  b two .36546 NaN 
4  a one 16567 NaN 
+0

謝謝!我曾見過使用.loc的例子,我發現werent返回了我所需要的。這正是我想要的。 – thejunior

相關問題