我有一个像这样的熊猫数据框:
Text start end entity value
I love apple 7 11 fruit apple
I ate potato 6 11 vegetable potato
我尝试过使用 for 循环
它运行缓慢,我认为这不是我们应该对熊猫做的事情。
我想基于此创建另一个 pandas 数据框,例如:
Sentence# Word Tag
1 I Object
1 love Object
1 apple fruit
2 I Object
2 ate Object
2 potato vegetable
将文本列拆分为单词和句子编号。除实体词外,其他词将被标记为对象。
Use split
, stack
and map
:
u = df.Text.str.split(expand=True).stack()
pd.DataFrame({
'Sentence': u.index.get_level_values(0) + 1,
'Word': u.values,
'Entity': u.map(dict(zip(df.value, df.entity))).fillna('Object').values
})
Sentence Word Entity
0 1 I Object
1 1 love Object
2 1 apple fruit
3 2 I Object
4 2 ate Object
5 2 potato vegetable
旁注:如果运行 v0.24 或更高版本,请用.to_numpy()代替.values https://stackoverflow.com/a/54508052/4909087.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)