假设我有一个包含位置的数据框
df1 = pd.DataFrame({'col1': [1,2,3,4,5], 'location': ['Hackney', 'Mile End', 'Croydon', 'Edgbaston', 'Wembley'] })
然后我把这些地方的清单和它们所在的主要城市都储存在字典里
dict ={
['Hackney', 'Mile End', 'Croydon', 'Wembley'] : 'London',
['Edgbaston'] : 'Birmingham'
}
问题:如何创建一个新列(例如df1['city']
),该列使用此词典填充每个location
列条目所在的城市注意:如果创建字典来实现这一点不是理想的方法,请随意建议其他方法
理想输出:希望获得如下所示的内容(如果需要扩展词典,则这应适用于更多条目)
df1 = pd.DataFrame({'col1': [1,2,3,4,5], 'location': ['Hackney', 'Mile End', 'Croydon', 'Edgbaston', 'Wembley'], 'city': ['London','London','London','Birmingham','London'] })
尝试了:使用apply方法,但似乎出现了错误
df1['city'] = df1['location'].apply(dict)
您不能使用具有可变键的python
dict
,这意味着您可能需要一个元组而不是列表一旦你有了这个功能,你就可以使用
map
函数将一个位置映射到一个城市。如果您的dict没有键的元组,您可以直接使用它,但在本例中-您可以定义一个函数-您的字典无效,您可以使用list作为dictionary的值,也不能像
dict
那样调用DictionAnry,因为python代码名,内置:以下是可能的展平列表中的值,然后使用^{} ,如果不存在,则返回缺少的值:
如果字典格式为键中的元组:
相关问题 更多 >
编程相关推荐