我没有太多的编码经验,这是我的第一个问题,所以请耐心等待我。我需要找到一种方法将一列的多个值更改为np.nan公司,基于另一列中的条件。因此,我创建了所需列“Vorgabe”和“Temp”的副本。你知道吗
每当“Grad”中的值不是0时,我想将“Vorgabe”和“Temp”中定义区域中的值更改为np.nan公司. 你知道吗
print(df)
OptOpTemp OpTemp BSP Grad Vorgabe Temp
0 22.0 20.0 5 0.0 22.0 20.0
1 22.0 20.5 7 0.0 22.0 20.5
2 22.0 21.0 8 1.0 22.0 21.0
3 22.0 21.0 6 0.0 22.0 21.0
4 22.0 23.5 7 0.0 22.0 20.0
5 23.0 21.5 1 0.0 23.0 21.5
6 24.0 22.5 3 1.0 24.0 22.5
7 24.0 23.0 4 0.0 24.0 23.0
8 24.0 25.5 9 0.0 24.0 25.5
所以我想实现这样的目标:
OptOpTemp OpTemp BSP Grad Vorgabe Temp
0 22.0 20.0 5 0.0 22.0 20.0
1 22.0 20.5 7 0.0 nan nan <-one row above
2 22.0 21.0 8 1.0 nan nan
3 22.0 21.0 6 0.0 nan nan <-one row among
4 22.0 23.5 7 0.0 22.0 20.0
5 23.0 21.5 1 0.0 nan nan
6 24.0 22.5 3 1.0 nan nan
7 24.0 23.0 4 0.0 nan nan
8 24.0 25.5 9 0.0 24.0 25.5
有人能解决我的问题吗?你知道吗
编辑:我可能不清楚。目标是将定义区域中“Vorgabe”和“Temp”中的每个值都更改为nan。在我的示例中,区域将是上面的一行,其中包含1.0的行,以及中间的一行。所以不仅是1.0所在的行,还有上面和下面的行。你知道吗
带} 的掩码:
|
的链3条件对于bitwise OR
,对于1
上方和下方的行,使用带^{多行通用解决方案:
编辑:
可以将两个遮罩连接在一起:
你可以用numpy.where。你知道吗
使用loc:
输出
相关问题 更多 >
编程相关推荐