我有一个数据框列,需要将其替换为字典中定义的类别。
我正在使用字典并使用 for 循环,其中有 if 和 elif 语句,我用它们替换值。
dict_col = {'Red':['Light_Red','Crimson','Ferrari_Red'],'Blue:['Light_Blue','Azure_Blue','Sky_Color']}
我想知道是否有一种干净且更好的方法来执行此操作,而不是使用 for 循环。
最佳答案
是的,有。您可以在 pandas 中使用 map
函数:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html
你希望字典是相反的:
完整示例:
import pandas as pd
dict_col = {'Red':['Light_Red','Crimson','Ferrari_Red'],'Blue':['Light_Blue','Azure_Blue','Sky_Color']}
dict_col = {val: k for k, l in dict_col.items() for val in l}
df = pd.DataFrame(("Light_Red", 'Light_Blue'), columns=["Colors"])
df["Colors"].map(dict_col)
关于python - 使用一对多字典替换或映射 pandas 数据框列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64100268/