【发布时间】:2016-09-02 03:31:21
【问题描述】:
我有一本 one:many 字典。我想将 pandas Dataframe 列的值映射到字典的键(不是值)。这是我的字典:
dict1={'fruits':('apple','grapes','oranges'),'food':('fish','meat','fibre')}
这里是熊猫系列对象:
df=pd.Series(['fish','apple','meat'])
我想要的输出:
0 food
1 fruits
2 food
dtype: object
【问题讨论】:
-
你做错了。你的数据结构是错误的。字典用于正向查找,而不是反向查找。最重要的是,您正在对元组进行反向查找,这意味着您有
O(n*m)时间复杂度,其中n是字典中的键数,m是每个元组的平均大小。您应该有一个字典,然后将每种类型的食物映射到一个类别,因此{'fish': 'food', 'appl'e:'fruits'},您的查找具有O(1)时间复杂度。 -
感谢您的 cmets,我以后会记住这一点,我是编码新手。
标签: python dictionary pandas dataframe