我想用未知代替纽约,用芝加哥代替未知。我的意思是,我想用另一列的值替换所有与字符串"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