【发布时间】:2020-06-23 09:30:28
【问题描述】:
所以我正在编写一个自定义函数,我希望将字符串输入转换为数据框,以便模型对其进行预测。现在我被困在编写一段代码,它能够检测输入字符串是否包含特定的单词,如果是,则将其处理到值为 1 或 0 的数据框列。但是,我无法要成功地纠正它,我怎样才能最好地解决这个问题? 这是我的一段代码:
def function(text_input)
cols = ['col_foo', 'col_bar', 'col_hello', 'col_world']
words = ['foo', 'bar', 'hello', 'world']
data = [text_input.split()]
for col in cols:
df[col] = 0
for word in data:
if word in words:
for words in cols:
df[cols] = 1
return df
我希望首先使用初始 0 值创建所有列。然后根据text_input中与words列表中的单词匹配的单词,将对应的cols设置为1个值。但是现在,这段代码输出了所有df[cols] = 0
我在这段代码中做错了什么?提前致谢!
【问题讨论】:
-
查看你的代码然后你就会发现问题。
-
我相信问题出在
for words in cols:行。由于添加了 col_ 名称,这不匹配。如何重写它以使其仅与列部分的实际名称匹配? -
使用
cols,而不是words -
不太确定我是否明白你的意思。我在最后一部分中尝试做的是将值设置为 1 与匹配
text_input中的单词的单词匹配的那些列 -
df[cols]-->df['col_foo', 'col_bar', 'col_hello', 'col_world']
标签: python string list function if-statement