我想将整列数据移到左侧。 仅应将数据向左移动1次,并且列应固定。 你能告诉我怎么做吗?
初始数据为:
A1 A2 A3 A4 A5
#0001 421 000 000 777 888
#0002 382 403 430 320 055
#0003 441 304 403 403 403
#0004 430 403 206 N/A 312
#0005 N/A 394 493 N/A 403
需求数据为:
A1 A2 A3 A4 A5
#0001 000 000 777 888 N/A
#0002 403 430 320 055 N/A
#0003 304 403 403 403 N/A
#0004 403 206 N/A 312 N/A
#0005 394 493 N/A 403 N/A
答案 0 :(得分:1)
与shift
一起使用双重转置:
df = df.T.shift(-1,axis=0).T
print(df)
A1 A2 A3 A4 A5
#0001 0.0 0.0 777.0 888.0 NaN
#0002 403.0 430.0 320.0 55.0 NaN
#0003 304.0 403.0 403.0 403.0 NaN
#0004 403.0 206.0 NaN 312.0 NaN
#0005 394.0 493.0 NaN 403.0 NaN
实际上df.shift(-1,axis=1)
应该可以工作,但是代码中存在错误:
print(df.shift(-1,axis=1))
A1 A2 A3 A4 A5
#0001 777.0 0.0 888.0 NaN NaN
#0002 320.0 430.0 55.0 NaN NaN
#0003 403.0 403.0 403.0 NaN NaN
#0004 NaN 206.0 312.0 NaN NaN
#0005 NaN 493.0 403.0 NaN NaN
答案 1 :(得分:1)
尝试以下简单循环:
for i in range(len(df.columns)-1): # loop till last but one column
df.iloc[:,i] = df.iloc[:,i+1] # each column gets values of next column
df[i+1] = np.nan # for last column;
输出:
A1 A2 A3 A4 A5
#0001 0 0 777.0 888 NaN
#0002 403 430 320.0 55 NaN
#0003 304 403 403.0 403 NaN
#0004 403 206 NaN 312 NaN
#0005 394 493 NaN 403 NaN