python - 当等于特定值时移动列中的行
问题描述
当值等于 a 中的特定值时,我想移入rows
a 。对于以下内容,我试图将值转换为when 中的值。pandas
df
Column
df
Column B
Column A
A == x
import pandas as pd
df = pd.DataFrame({
'A' : [1,'x','x','x',5],
'B' : ['x',2,3,4,'x'],
})
这是我的尝试:
df = df.loc[df.A.shift(-1) == df.A.shift(1), 'x'] = df.A.shift(1)
预期输出:
A B
0 1 x
1 2
2 3
3 4
4 5 x
解决方案
您可以使用:
m = df.A.eq('x')
df[m]=df[m].shift(-1,axis=1)
print(df)
A B
0 1 x
1 2 NaN
2 3 NaN
3 4 NaN
4 5 x
推荐阅读
- mysql - SQL 在插入后触发器中创建事件
- javascript - 如何在 React-Native 的自定义抽屉导航中显示标题图像和文本?
- c++ - * vs & Arduino类
- python - 处理非常大的python dict时如何节省RAM?
- android - 如何从 C++ Windows 桌面应用程序将数据写入通过 USB 连接的 Android 手机
- ios - 使用 RCT_EXPORT_METHOD 语法时,如何修复 Xcode 上的“忽略方法主体之前的分号”错误?
- angular - Angular/RxJS - 嵌套 Observable - 重构语句
- django - Django请求会话未与登录用户模型链接
- c - 在结构数组之后打印一个字符
- php - Symfony 4 无法访问文件 /tmp/phpFILE