【发布时间】:2019-10-26 10:41:06
【问题描述】:
实际上,我有大约 400 万行的点击流数据帧。我有很多列,其中两个基于 URL 和域。我有一本字典,想用它作为条件。例如:如果域等于 amazon.de 并且 Url 包含关键字 pillow,则该列将具有值 pillow。等等。
dictionary_keywords = {"amazon.de": "pillow", "rewe.com": "apple"}
ID Domain URL
1 amazon.de www.amazon.de/ssssssss/exapmle/pillow
2 rewe.de www.rewe.de/apple
预期的输出应该是新列:
ID Domain URL New_Col
1 amazon.de www.amazon.de/ssssssss/exapmle/pillow pillow
2 rewe.de www.rewe.de/apple apple
我可以手动使用 .str.contain 方法,但需要定义一个以字典键和值作为条件的函数。
类似df[df['domain] == 'amazon.de'] & df[df['url'].str.contains('pillow')
但我不确定。我是新手。
【问题讨论】:
-
学会使用正则表达式(RegEx),生活会更轻松
-
到目前为止你自己尝试过什么?
-
@jorijnsmit 我刚刚编辑了这个问题,并添加了到目前为止我想要做的事情......但我是新手,并不真正了解如何将字典用作条件。
-
输入输出不匹配。您在字典中有
"rewe.com": "apple",但在DataFrame 中有"rewe.de"和"Apple"(大写A)。 -
@alec_djinn 感谢您指出...我改了。
标签: python pandas function lambda