【发布时间】:2019-07-09 17:41:24
【问题描述】:
我在 pandas 有一种情况。我有一个 excel 文件,其中有一个名为 item 的列,它有一些文本。我有另一个数据框有一个名为brand 的列。如果项目列文本中存在品牌字符串,我想在项目列前面添加品牌名称。
这是我的 excel 文件快照。
我的品牌数据框如下所示。
brand_df = pd.DataFrame({'brand':['spark','hadoop','hive']})
我想检查brand_df 品牌是否存在于item_df 中。如果品牌存在,那么它应该在项目前面的update_column 名称下,如下所示。
根据 pandas doc 的理解,我们应该使用地图来实现这一点,但我的地图功能如下所示。
self.item_df['updated_column'] = self.item_df["item"].map(lambda x : 'spark' if 'spark' in x else 'hive' if 'hive' in x else 'hadoop' if 'hadoop' in x else '' )
在上面的命令中,问题是当你有很长的品牌列表时工作会很困难。
谁能建议我解决这个问题的最佳方法。
文本版的excel内容
item
hadoop is fast
hive is sql on hdfs
spark is superfast
spark is awesome
AWS is emr function
【问题讨论】:
-
请提供可复制的文本而不是图像。