Jed*_*ide 4 python dataframe pandas
我没有太多的编码经验,这是我的第一个问题,所以请耐心等待我.我需要找到一种方法,根据另一列中的条件,将pandas df列的多个值更改为np.nan.因此,我创建了所需列"Vorgabe"和"Temp"的副本.
每当"Grad"中的值不为0时,我想将"Vorgabe"和"Temp"中的definded区域中的值更改为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
Run Code Online (Sandbox Code Playgroud)
所以我想实现这样的目标:
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
Run Code Online (Sandbox Code Playgroud)
有人能解决我的问题吗?
编辑:我可能不清楚.目标是将定义区域中"Vorgabe"和"Temp"中的每个值更改为nan.在我的例子中,区域将在上面一行,行中有1.0,其中一行.因此,不仅是1.0所在的行,还有上面和下面的行.
使用loc:
df.loc[df.Grad != 0.0, ['Vorgabe', 'Temp']] = np.nan
print(df)
Run Code Online (Sandbox Code Playgroud)
产量
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 NaN NaN
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 NaN NaN
7 24.0 23.0 4 0.0 24.0 23.0
8 24.0 25.5 9 0.0 24.0 25.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |