pandas中的文本分类(python)

时间:2018-06-01 16:38:13

标签: python pandas text classification

所以我有一个非常庞大的pandas数据帧,由事务数据组成:

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

我的思考过程如下:

  • words
  • 的所有行创建一个巨大的唯一df['description']列表
  • 然后,对于新列df['tag'],对于列表中的每个项目,执行isin并分配相关标记。

我不确定如何创建唯一words列表。另外,我不确定这是解决此问题的正确方法。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

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...)是熊猫中不错的范例,它将遍历每一行并执行一个功能。在这里,我通过.split()在说明栏中列出了以空格分隔的字词,然后通过,将其转换为.join()分隔的字符串