熊猫:根据其他列的值有条件地替换值 - python

我有一个数据框(df),如下所示:

                    environment     event   
time                    
2017-04-28 13:08:22     NaN         add_rd  
2017-04-28 08:58:40     NaN         add_rd  
2017-05-03 07:59:35     test        add_env
2017-05-03 08:05:14     prod        add_env
...

现在,我的目标是对于add_rd列中的每个event,应将NaN列中关联的environment-值替换为字符串RD

                    environment     event   
time                    
2017-04-28 13:08:22     RD          add_rd  
2017-04-28 08:58:40     RD          add_rd  
2017-05-03 07:59:35     test        add_env
2017-05-03 08:05:14     prod        add_env
...

我到目前为止所做的

我偶然发现df['environment'] = df['environment].fillna('RD')替换了每个NaN(这不是我要查找的内容),pd.isnull(df['environment'])正在检测丢失的值,而np.where(df['environment'], x,y)似乎是我想要的但不起作用。此外,我是否尝试过:

import pandas as pd

for env in df['environment']:
    if pd.isnull(env) and df['event'] == 'add_rd':
        env = 'RD'

缺少索引或某种迭代器来访问event列中的等效值。
我尝试了这个:

df['environment'] = np.where(pd.isnull(df['environment']), df['environment'] = 'RD', df['environment'])

SyntaxError: keyword can't be an expression

这显然没有用。

我看了几个问题,但不能以答案中的建议为基础。 Black's question Simon's question szli's question Jan Willems Tulp's question

那么,如何基于其他列的值替换一列中的值?

参考方案

现在,我的目标是针对事件列中的每个add_rd
环境列中的NaN值应替换为字符串
RD。

根据@Zero的注释,使用pd.DataFrame.loc和布尔索引:

df.loc[df['event'].eq('add_rd') & df['environment'].isnull(), 'environment'] = 'RD'

熊猫:从SettingWithCopyWarning到loc和iloc - python

我试着做:input1['Signature_Fixed'] = 'NONE' i = 0 for row in input1['Signature']: if (row == 'Competitor'): input1['Signature_Fixed'][…

熊猫-保留与其他数据框中两个单元格匹配的行 - python

我有一个像这样的数据框df: trial id run rt acc 0 1 1 1 0.941836 1 1 2 1 1 0.913791 1 2 3 1 1 0.128986 1 3 4 1 1 0.155720 0 4 1 1 2 0.414175 0 5 2 1 2 0.699326 1 6 3 1 2 0.781877 1 7 4 1 2 0.55…

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…