python和pandas的新手。如何从一列到下一列的特定行获取数据?我试图使用.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,第'row4'列中的数据移动到行2,3,4,仅将列'data3'移动(.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文件中读取实际数据。我只需要将特定索引的数据从一列移动到另一列。
谢谢你,祝你有愉快的一天!
答案 0 :(得分:2)
您可以通过axis=1
,loc
添加行标签选择来进行shift
列选择,并且列选择将确保仅修改那些行和列:
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