# Example data
df = pd.DataFrame({'Country': ['unknown', 'USA', 'unknown', 'UK', 'USA', 'unknown'],
'City': ['London', 'New York', 'New York', 'London', 'New York', 'Paris']
})
city2country_mapping = {'London': 'UK', 'New York': 'USA', 'Paris': 'France'}
# print(df)
# Country City
# 0 unknown London
# 1 USA New York
# 2 unknown New York
# 3 UK London
# 4 USA New York
# 5 unknown Paris
df.loc[df.Country == 'unknown', 'Country'] = df[df.Country == 'unknown'].City.map(city2country_mapping)
print(df)
您可以使用^{} 对其进行矢量化:
df.city.map(city2country_mapping)
将首先为每个城市创建一个包含相应国家的序列,然后使用该序列替换country
列中的unknown
国家。在编辑特定行:
DataFrame.loc
与Series.where
编辑} 。在
DataFrame
对象的特定行(“切片”)的标准选项是^{接受的答案使用了一个简洁的应用程序^{} 重写
df.Country
系列,对于这个特定的任务来说,这个系列更加简洁。在重新编码值:
.apply
与.map
您可以使用
.map()
直接用字典重新编码序列—不需要.apply()
lambda函数。在示例
输出:
^{pr2}$您可以使用
apply
来执行此操作:如果是“未知”国家,Lambda将从映射中返回city,否则只返回此行中的一个国家。在
相关问题 更多 >
编程相关推荐