在不删除数据的情况下移动 pandas 中的列
shifting column in pandas without eliminating data
输入:
## x2
##0 214
##1 234
##2 253
##3 272
##4 291
期望的输出:
## x2
##0 291
##1 214
##2 234
##3 253
##4 272
以下代码消除了移位列的底部并将 NA 放在顶部。但是,我想要它作为一个循环。
a = pd.DataFrame([214,234,253,272,291], columns=['x2'])
a.x2 = a.x2.shift(1)
我会在调用 shift
:
之后链接一个调用来填充 fillna
import pandas
a = pandas.DataFrame([214,234,253,272,291], columns=['x2'])
a['x3'] = a.shift(1).fillna(a['x2'].iloc[-1])
print(a)
x2 x3
0 214 291
1 234 214
2 253 234
3 272 253
4 291 272
您可以直接重新分配给 x2
列,但我希望能够一次显示源和结果以进行比较
输入:
## x2
##0 214
##1 234
##2 253
##3 272
##4 291
期望的输出:
## x2
##0 291
##1 214
##2 234
##3 253
##4 272
以下代码消除了移位列的底部并将 NA 放在顶部。但是,我想要它作为一个循环。
a = pd.DataFrame([214,234,253,272,291], columns=['x2'])
a.x2 = a.x2.shift(1)
我会在调用 shift
:
fillna
import pandas
a = pandas.DataFrame([214,234,253,272,291], columns=['x2'])
a['x3'] = a.shift(1).fillna(a['x2'].iloc[-1])
print(a)
x2 x3
0 214 291
1 234 214
2 253 234
3 272 253
4 291 272
您可以直接重新分配给 x2
列,但我希望能够一次显示源和结果以进行比较