python - Pandas:根据其他列值有条件地替换值

标签 python python-3.x pandas dataframe

我有一个数据框(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
...

现在我的目标是 event 列中的每个 add_rd,以及 environment 中关联的 NaN 值> 列应替换为字符串 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') ,它取代了 every 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

那么,如何根据另一列的值替换一列中的值?

最佳答案

Now my goal is for each add_rd in the event column, the associated NaN-value in the environment column should be replaced with a string RD.

根据@Zero的评论,使用pd.DataFrame.loc和 bool 索引:

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

关于python - Pandas:根据其他列值有条件地替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224142/

相关文章:

python - Django 测试 : DatabaseError: no such table for ManyToManyField

python-3.x - Python3-pip3 : AttributeError: '_NamespacePath' object has no attribute 'sort'

python - 如何将 pandas DataFrame 转换为特定的带注释的类 csv 格式(内部描述)

python - concat 将值转换为 nan 数据

python - 重定向 Python 解释器的 IO

Python 类型错误 : can only concatenate str (not "tuple") to str

python - 按条件行标准对数据框列求和

python - 从字典键和值中过滤数据集

python - OpenCv错误无法通过视频捕获打开相机

python - 如果我希望用户输入的数据具有特定格式,如何在python 3中设置格式检查?