2015-05-21 86 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

相关问题