如何将数据帧列中的值替换为另一个数据帧列.就像图片一样



我想用未知代替纽约,用芝加哥代替未知。我的意思是,我想用另一列的值替换所有与字符串"unknown"匹配的值,反之亦然。有什么帮助吗?

在此处输入图像描述

fillna是您需要的函数。首先,将"unknown"值替换为nan,然后将所有nan替换为其他列值。

import pandas as pd
from numpy import nan
df = (
pd.DataFrame(
{
'CITY_MULTIPLE_CHOICE': ['new york', 'chicago', 'unknown', 'Los Angeles'],
'CITY_OPEN': ['unknown', 'unknown', 'Chicago', 'Chicago'],
}
).replace('unknown', nan)
.assign(
CITY_MULTIPLE_CHOICE=lambda x: x.CITY_MULTIPLE_CHOICE.fillna(value=x.CITY_OPEN),
CITY_OPEN=lambda x: x.CITY_OPEN.fillna(value=x.CITY_MULTIPLE_CHOICE)
)
)
print(df)

CITY_MULTIPLE_CHOICE CITY_OPEN
0             new york   unknown
1              chicago   unknown
2              unknown   Chicago
3          Los Angeles   Chicago

上一个代码将打印:

CITY_MULTIPLE_CHOICE CITY_OPEN
0             new york  new york
1              chicago   chicago
2              Chicago   Chicago
3          Los Angeles   Chicago

相关内容

最新更新