python - 将 Pandas 中的句子拆分为句号和单词

标签 python pandas

我有一个像这样的 Pandas 数据框:

Text            start    end    entity     value
I love apple      7       11    fruit      apple
I ate potato      6       11    vegetable  potato

我试过使用for循环 它运行缓慢,我认为这不是我们应该对 pandas 做的事情。

我想基于此创建另一个 pandas 数据框:

Sentence#         Word        Tag
  1                I         Object 
  1               love       Object
  1               apple      fruit
  2                I         Object
  2               ate        Object
  2               potato     vegetable

将文本列拆分为单词和句子编号。除了实体词,其他词都将被标记为对象。

最佳答案

使用splitstackmap:

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 或更高版本,please use .to_numpy() instead of .values .

关于python - 将 Pandas 中的句子拆分为句号和单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55444976/

相关文章:

python - 沿着时间序列索引连接 pandas DataFrame

python - 计算每行中缺失/NaN 的数量

python - Pandas 中的条件求和

python - 如何使用从 HTML 文件导入的 pandas 从数据集中提取特定列?

python-3.x - 在 Pandas 中使用 groupby 获取行数

python - emacs windows 在当前缓冲区中运行 python 程序并在输出窗口中显示输出

python - 如何更改相关图中置信区间的透明度?

Python;将数据帧输出写入不同的子目录

python - 将 Pandas DataFrame 列表解包为单独的表格 DataFrame

python - 在http服务器中处理客户端请求