[英]Remove rows of 2 columns and shifting up from the next row
How do I remove each row for column a and b and replace a and b from the next row?如何删除 a 和 b 列的每一行并从下一行替换 a 和 b? I am not sure how to do this in an efficient way because I have a big dataset.
我不确定如何以有效的方式执行此操作,因为我有一个大数据集。
My dataframe我的数据框
╔═══════════════════════════╗
║ Name a b c d ║
╠═══════════════════════════╣
║ Lisa 5 4 1 3 ║
║ Timmy 3 2 7 2 ║
║ Rann 2 3 1 5 ║
║ Bob 1 6 3 4 ║
╚═══════════════════════════╝
I want to change it into this我想把它改成这个
╔══════════════════════════════════════════╗
║ Name c d a b ║
╠══════════════════════════════════════════╣
║ Lisa 1 3 3 2 ║
║ Timmy 7 2 2 3 ║
║ Rann 1 5 1 6 ║
║ Bob 3 4 (a & b from next row) ║
╚══════════════════════════════════════════╝
a and b for Lisa is replaced with Timmy's a and b, Timmy is replaced by Rann and so on. Lisa 的 a 和 b 替换为 Timmy 的 a 和 b,Timmy 替换为 Rann 等。 How should I do this without hard-coding it?
如果没有硬编码,我应该如何做到这一点?
You can simply use pandas.DataFrame.shift function to achieve that您可以简单地使用pandas.DataFrame.shift函数来实现
df[['a','b']] = df[['a','b']].shift(-1)
Out:出去:
Name a b c d
0 Lisa 3.0 2.0 1 3
1 Timmy 2.0 3.0 7 2
2 Rann 1.0 6.0 1 5
3 Bob NaN NaN 3 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.