You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据列表移除DataFrame中指定句子编号的相关数据

问题描述

我有如下DataFrame:

dataframe = {
    'Sentence #': [1,1,1,2,2,2,3,3],
    'Word': ['a','b','c','a','b','c','a','b'],
    'POS': ['NNS', 'RB', 'CD','NNS', 'RB', 'CD','NNS', 'RB'],
    'Tag': ['B-PRO', 'I-DR', 'O', 'B-PRO', 'I-DR', 'O', 'B-PRO', 'I-DR']
}

希望根据移除列表 remove_list = [1,3],删除DataFrame中所有与这些句子编号相关的sentence-word-pos-tag数据,预期得到如下结果:

'Sentence #': [2,2,2],
'Word': ['a','b','c'],
'POS': ['NNS', 'RB', 'CD'],
'Tag': ['B-PRO', 'I-DR', 'O']
解决方案

先把字典转成pandas DataFrame,再通过布尔索引筛选出不在移除列表中的句子数据即可:

import pandas as pd

# 原始数据
dataframe = {
    'Sentence #': [1,1,1,2,2,2,3,3],
    'Word': ['a','b','c','a','b','c','a','b'],
    'POS': ['NNS', 'RB', 'CD','NNS', 'RB', 'CD','NNS', 'RB'],
    'Tag': ['B-PRO', 'I-DR', 'O', 'B-PRO', 'I-DR', 'O', 'B-PRO', 'I-DR']
}

# 转为DataFrame格式
df = pd.DataFrame(dataframe)

# 移除列表
remove_list = [1,3]

# 筛选目标数据
filtered_df = df[~df['Sentence #'].isin(remove_list)]

执行后得到的filtered_df就是符合要求的结果,打印输出为:

Sentence # Word  POS     Tag
3           2    a  NNS  B-PRO
4           2    b   RB   I-DR
5           2    c   CD      O

如果需要转回字典格式,执行以下代码:

filtered_dict = filtered_df.to_dict('list')
print(filtered_dict)

输出结果与预期完全一致:

{'Sentence #': [2, 2, 2], 'Word': ['a', 'b', 'c'], 'POS': ['NNS', 'RB', 'CD'], 'Tag': ['B-PRO', 'I-DR', 'O']}

内容的提问来源于stack exchange,提问作者miladjurablu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:24:27