python - 数据操作 - 移动行操作
问题描述
我有一个 Pandas DataFrame,我想循环column 1
,如果列值是vergleich
我将行单元格向右移动一次。
这是我的尝试:
for i,j in df.iterrows():
if j[1]== "stringobject":
df.shift(periods=1,axis=1)
print(df)
当我打印 df 时,我没有看到任何变化。请告知如何解决这个问题
解决方案
IIUC,使用这个 MCVE 试试这个:
df = pd.DataFrame({'col1':[1,2,3,'A','A'],'col2':['A','A','A','Z','Z'], 'col3':['Z','Z','Z', np.nan, np.nan]})
#col1 col2 col3
#0 1 A Z
#1 2 A Z
#2 3 A Z
#3 A Z NaN
#4 A Z NaN
m = df['col1'] == 'A'
df[m] = df[m].shift(1, axis=1)
输出:
col1 col2 col3
0 1 A Z
1 2 A Z
2 3 A Z
3 NaN A Z
4 NaN A Z
推荐阅读
- php - 不断收到消息:使用 codeigniter 的未定义变量
- powershell - Powershell脚本从文件夹中的文件中删除文本行
- c++ - 在 for-each 循环中擦除向量的一些元素而不迭代整个向量
- c - 如何使用 espconn 捕获 HTTPS 请求?
- javascript - 类型“TElement”上不存在属性“已检查”
- java - 将证书添加到 JVM 密钥库后,Tomcat 无法找到请求目标的有效证书路径
- javascript - 从包含许多文件的文件夹中反应本机动态导入图像
- java - 字符串“Switch Case”简单代码
- javascript - 单击Reach JS替换变量中的值
- json - Visual Studio Code:尝试添加对新语言/文件类型的支持时未检测到注释