我有一个数据框,其中一列包含文本信息
print(df):
... | ... | Text |
... | ... | StringA. StringB. StringC |
... | ... | StringZ. StringY. StringX |
... | ... | StringL. StringK. StringJ |
... | ... | StringA. StringZ. StringJ |
我还有一本字典,它包含以下内容:
dict = {'Dogs': ['StringA', 'StringL'],'Cats': ['StringB', 'StringZ', 'StringJ'],'Birds': ['StringK', 'StringY']}
编辑:我有大约100个字典键,每个都有4个以上的值
我希望做的是在数据框中为字典中的每个键创建额外的列,然后在出现字典中的任何值时在列中放置一个“1”
因此,我试图得到的结果是:
print(df):
... | ... | Text | Dogs | Cats | Birds
... | ... | StringA. StringB. StringC | 1 | 1 | 0
... | ... | StringZ. StringY. StringX | 0 | 1 | 1
... | ... | StringL. StringK. StringJ | 1 | 1 | 1
... | ... | StringA. StringZ. StringJ | 1 | 1 | 0
编辑:问题是我不确定如何在文本列中搜索值,然后在键列中返回1(如果找到)。任何帮助都将不胜感激!谢谢
@Abhihek的答案是最有效的,但只是为了给出另一个解决方案,首先循环
df
如果字符串较大或有许多字符串,则此解决方案可能不理想。在这种情况下,您可能需要添加一个具有某种Trie数据结构的附加列
但上述解决方案应适用于大多数中等情况
相关问题 更多 >
编程相关推荐