熊猫文本分类(python)
因此,我有一个非常大的数据框架,由事务数据组成:熊猫文本分类(python),python,pandas,text,classification,Python,Pandas,Text,Classification,因此,我有一个非常大的数据框架,由事务数据组成: description amount foo 10 bar 5 baz 9 foo bar 12 foobar 15 bar baz 20 bazbar 19 预期产出如下: description amount tag foo 10 foo bar 5
description amount
foo 10
bar 5
baz 9
foo bar 12
foobar 15
bar baz 20
bazbar 19
预期产出如下:
description amount tag
foo 10 foo
bar 5 bar
baz 9 baz
foo bar 12 foo, bar
foobar 15 foobar
bar baz 20 bar, baz
bazbar 19 bazbar
我的思考过程如下:
description amount tag
foo 10 foo
bar 5 bar
baz 9 baz
foo bar 12 foo, bar
foobar 15 foobar
bar baz 20 bar, baz
bazbar 19 bazbar
- 从
df['description']
- 然后,对于新列
,对于列表中的每个项目,执行df['tag']
并分配相关标记isin
单词列表。另外,我不确定这是解决这个问题的正确方法
谢谢你的帮助
a = pd.DataFrame({'description': ['foo', 'bar', 'bas', 'foo bar',
'foobar', 'bar baz', 'bazbar']})
a['tag'] = a.description.apply(lambda x: ', '.join(x.split()))
print(a)
description tag
foo foo
bar bar
bas bas
foo bar foo, bar
foobar foobar
bar baz bar, baz
bazbar bazbar
A.apply(lambda…
是pandas中一个很好的范例,它将遍历每一行并执行一个函数。在这里,我通过.split()
在描述栏中用空格分隔的单词列出一个列表,然后通过.join()
将其转换回带有,
分隔符的字符串。为什么bazbar
被归类为baz,bar
,而不是作为一个唯一的单词?与foobar
相同。因为,我想要部分字符串匹配可能是因为'bazbar'==True
?是的@AChampion是正确的。我理解,但是你如何知道部分字符串,为什么bazb
不是部分字符串,如果你只想要唯一的标记,你如何找到“唯一的单词”(在您的示例中,我没有看到这个标记的示例),请使用lambda x:','.join(set(x.split())