将多列数据移动到左侧Pandas Dataframe [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将多列数据移动到左侧Pandas Dataframe [重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我想将整列数据移到左边。只有数据应该向左移动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
答案
使用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
另一答案
试试这个简单的循环:
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
以上是关于将多列数据移动到左侧Pandas Dataframe [重复]的主要内容,如果未能解决你的问题,请参考以下文章