所以我有一个非常庞大的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
列表。另外,我不确定这是解决此问题的正确方法。
感谢任何帮助!
答案 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()
分隔的字符串