我想把整个列的数据移到左边。只有数据应该移到左边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发布于 2018-11-15 04:56:27
试试这个简单的循环:
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发布于 2018-11-15 04:46:47
双转置与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 NaNhttps://stackoverflow.com/questions/53312540
复制相似问题