首页 > 解决方案 > 根据另一列值更改 padas 中的值

问题描述

我想通过检查另一列中的值来更改熊猫列的值。示例数据如下所示:

datetime.   column1 column2
2021-04-10.   1.       20
2021-04-11.   0.       21
2021-04-12.   0.       19
2021-04-13.   1.       12

对于第 1 列:当值为 0 时。条件应检查第 2 列的值是否超出 20-22 的范围,如果这是强制转换,则应将值从 0 重置为 1,否则保持为 0。

对于 Column1:当值为 1 时,不应采取任何操作,应始终返回 1。

预期输出如下:

datetime.   column1 column2
2021-04-10.   1.       20
2021-04-11.   0.       21
2021-04-12.   1.       19
2021-04-13.   1.       12

标签: pythonpandasdataframedata-science

解决方案


尝试:

df.loc[df['column1'].eq(0),'column1'] = 1-df['column2'].between(20,22).astype(int)

输出:

     datetime.  column1  column2
0  2021-04-10.      1.0       20
1  2021-04-11.      0.0       21
2  2021-04-12.      1.0       19
3  2021-04-13.      1.0       12

推荐阅读