【发布时间】:2021-11-27 02:25:36
【问题描述】:
我有一个数据集如下。原因是唯一给出的列,其他列是我想要的输出
reason business_name name individual_name DOB
business name Yes No No No
name No Yes No No
business name Yes No No No
individual_name No No Yes No
DOB No No No Yes
Business name,name Yes Yes No No
原因字段是我唯一的列,我想创建几个单独的列以二进制格式存储结果。
当前的代码看起来很愚蠢。在实际数据中,原因列有 10 多个唯一值。 我创建了 10+ 个关键字列表来存储原因关键字,以及 10+ 个空列表用于追加('Yes')或('No') 示例逻辑:
for comment in df['reason'] :
if any(x in comment for x in keywords1):
lis1.append('Yes')
else:
lis1.append('No')
.
.
However, when scanning the value as name,
both the business_name column and name will be yes. I think because the name both exists in keywords1 and keyword2.
keywords1=['business name'] keyword2 =['name']
这不是我真正想要的,我希望仅当原因具有值时才将其分开:企业名称,名称。不知道如何解决它并减少手动创建 10 多个列表。
提前致谢!
【问题讨论】:
-
您在寻找
df['reason'].str.get_dummies(',').replace({0: 'No', 1: 'Yes'})吗? Quickest way to make a get_dummies type dataframe from a column with a multiple of strings
标签: python python-3.x pandas list dataframe