python - 具有多个值的 Pandas/Python Map 字典键
问题描述
我想知道如何将字典键映射到多个字典项。我已经尝试了以下,但是输出不是预期的。
d = {'col1': ['type 2','type 3', 'type 4', 'type 5', 'type 6', 'type 6']}
df = pd.DataFrame(data=d)
dict = {
'a' :['type 2', 'type 3'],
'b' : ['type 4', 'type 5'],
'c': ['types 6', 'types 7']
}
for k, v in df.items():
df['col1'].map({k: v})
print(df)
解决方案
您可能必须转换您的字典,以便键是值,反之亦然。
dd = {
'a' :['type 2', 'type 3'],
'b' : ['type 4', 'type 5'],
'c': ['type 6', 'type 7']
}
ddd = {l:v for v,k in dd.items() for l in k}
print(ddd)
出去:
{'type 2': 'a',
'type 3': 'a',
'type 4': 'b',
'type 5': 'b',
'type 6': 'c',
'type 7': 'c'}
现在您可以轻松地映射它。
df.col1.map(ddd)
出去:
0 a
1 a
2 b
3 b
4 c
5 c
Name: col1, dtype: object
推荐阅读
- file-extension - 打开 .grp .mps 和 .rsc .rsr
- html - Html 文件没有与我的 css 文件一起下沉?
- node.js - YAML 多行正则表达式修剪注释和空格
- html - 引导表单下拉验证
- bash - bash 在字符串后读取拆分文件
- ruby-on-rails - 如何使用 Arel 跨多态 has_one 关系进行查询
- angular - Angular 8 路由与子模块中的子路由
- r - 一个向量上的多个股票
- python - 当“ObjectId 不是 JSON 可序列化”时,如何正确 jsonify Mongo DB 文档?
- pandas - 如何使用 pandas 处理包含多个标签(索引词)的字符串