首页 > 解决方案 > 在熊猫条件下左移

问题描述

我的 csv 文件有一些问题,我通过 pandas 库尝试了几种解决方案,但没有一个对我有用,我想左移到 3 列,以防其中一个出现特定代码(在这种情况下11 或 22),例如,这将是我的输入:

代码 姓名 % 代码 2 名称 2 % 2 代码 3 名称 3 % 3
11 约翰 34 44 23 33 彼得 15
22 45 33 彼得 45 44 25
33 彼得 34 66 亚伯拉罕 37 77 哈利 67
11 约翰 45 77 哈利 39 88 玛丽 20

我期待这样的事情:

代码 姓名 % 代码 2 名称 2 % 2 代码 3 名称 3 % 3
44 23 33 彼得 15
33 彼得 45 44 25
33 彼得 34 66 亚伯拉罕 37 77 哈利 67
77 哈利 39 88 玛丽 20

知道如何解决我的熊猫问题吗?

提前致谢!

标签: pythonpandasdatabasecsvdata-science

解决方案


你想要这个吗?

mask = df['code'].isin([11,22])
df.loc[mask] = df.loc[mask].shift(-3,axis=1)

输出 -

  code   name     %  code 2   name 2   % 2  code 3 name 3   % 3
0  44.0    Rob  23.0    33.0    Peter  15.0     NaN    NaN   NaN
1  33.0  Peter  45.0    44.0      Rob  25.0     NaN    NaN   NaN
2  33.0  Peter  34.0    66.0  Abraham  37.0    77.0  Harry  67.0
3  77.0  Harry  39.0    88.0     Mary  20.0     NaN    NaN   NaN

推荐阅读