使用不完全匹配的字典映射数据框
map dataframe with dictionary with not exact match
我想将我的数据框与地图匹配但不是完全匹配
No | Fruit
1 | Apple
2 | Orange
3 | Blood Orange
4 | Fuji Apple
5 | Apple Granny
6 | Orange USA
dic = {"Apple" : "Apple Cat", "Orange": "Orange Cat"}
IDEAL OUTPUT
No | Fruit | Cat
1 | Apple | Apple Cat
2 | Orange | Orange Cat
3 | Blood Orange | Orange Cat
4 | Fuji Apple | Apple Cat
5 | Apple Granny | Apple Cat
6 | Orange USA | Orange Cat
i tried the code below but it requires exact match
df["Cat"] = df["Fruit"].map(dic)
感谢任何帮助!
谢谢
您可以将映射的键提取到 Cat
列,然后映射字典。
df['Cat'] = df['Fruit'].str.extract('(%s)' % '|'.join(dic.keys()))
df['Cat'] = df['Cat'].map(dic)
print(df)
No Fruit Cat
0 1 Apple Apple Cat
1 2 Orange Orange Cat
2 3 Blood Orange Orange Cat
3 4 Fuji Apple Apple Cat
4 5 Apple Granny Apple Cat
5 6 Orange USA Orange Cat
我想将我的数据框与地图匹配但不是完全匹配
No | Fruit
1 | Apple
2 | Orange
3 | Blood Orange
4 | Fuji Apple
5 | Apple Granny
6 | Orange USA
dic = {"Apple" : "Apple Cat", "Orange": "Orange Cat"}
IDEAL OUTPUT
No | Fruit | Cat
1 | Apple | Apple Cat
2 | Orange | Orange Cat
3 | Blood Orange | Orange Cat
4 | Fuji Apple | Apple Cat
5 | Apple Granny | Apple Cat
6 | Orange USA | Orange Cat
i tried the code below but it requires exact match
df["Cat"] = df["Fruit"].map(dic)
感谢任何帮助! 谢谢
您可以将映射的键提取到 Cat
列,然后映射字典。
df['Cat'] = df['Fruit'].str.extract('(%s)' % '|'.join(dic.keys()))
df['Cat'] = df['Cat'].map(dic)
print(df)
No Fruit Cat
0 1 Apple Apple Cat
1 2 Orange Orange Cat
2 3 Blood Orange Orange Cat
3 4 Fuji Apple Apple Cat
4 5 Apple Granny Apple Cat
5 6 Orange USA Orange Cat