我有一个数据框(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
in the 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')
它取代了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
column.
我尝试过这个:
df['environment'] = np.where(pd.isnull(df['environment']), df['environment'] = 'RD', df['environment'])
SyntaxError: keyword can't be an expression
这显然不起作用。
我查看了几个问题,但无法根据答案中的建议进行构建。黑子的问题 https://stackoverflow.com/a/23307361/10099689 西蒙的问题 https://stackoverflow.com/a/31888920/10099689 szli的问题 https://stackoverflow.com/questions/17071871/select-rows-from-a-dataframe-based-on-values-in-a-column-in-pandas 扬·威廉姆斯·图尔普的问题 https://stackoverflow.com/a/10726275/10099689
那么,如何根据另一列的值替换列中的值呢?