【发布时间】:2020-09-12 19:08:53
【问题描述】:
我想将 unknown 替换为 new york,chicago 替换为 unknown。我的意思是我想用另一列的值替换与字符串“未知”匹配的所有值,反之亦然。有什么帮助吗?
【问题讨论】:
标签: python string dataframe replace data-cleaning
我想将 unknown 替换为 new york,chicago 替换为 unknown。我的意思是我想用另一列的值替换与字符串“未知”匹配的所有值,反之亦然。有什么帮助吗?
【问题讨论】:
标签: python string dataframe replace data-cleaning
fillna 是您需要的功能。 您首先将“未知”值替换为 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
【讨论】: