如何使用Python pandas逐行迭代标注结果并生成新列
用Python pandas实现逐行迭代数据集标注并新增列的方法
你可以参考以下两种常用实现方式,优先推荐更高效的apply方法,复杂逻辑需要显式逐行处理时可以用iterrows遍历:
前置准备:导入库并构造示例输入数据
import pandas as pd # 构造示例输入数据集 df = pd.DataFrame({ 'text': ['Cool', 'Drunk', 'Study'], 'A': [False, True, False], 'B': [False, False, True], 'C': [True, False, False] }, index=[0,1,2])
方法1:使用apply方法(推荐,性能更高)
如果你的标注逻辑可以封装成独立函数,用apply不需要手动写迭代逻辑,运行效率更高:
# 自定义标注逻辑函数,入参是每一行的Series对象 def get_label(row): # 这里替换成你自己的标注逻辑,示例默认返回False,可自行修改 return False # 新增Result列存储标注结果 df['Result'] = df.apply(get_label, axis=1) # 筛选需要的列得到最终输出格式 result_df = df[['text', 'Result']].rename(columns={'text': 'Text'}) print(result_df)
方法2:使用iterrows显式逐行迭代
如果你的标注逻辑非常复杂,需要逐行处理多步操作,可以用iterrows遍历:
# 先初始化Result列,默认值设为False df['Result'] = False # 逐行迭代处理 for idx, row in df.iterrows(): # 这里替换为你自己的标注逻辑,示例直接用默认值,可自行修改 pass # 筛选需要的列得到最终输出格式 result_df = df[['text', 'Result']].rename(columns={'text': 'Text'}) print(result_df)
注意:
iterrows遍历的性能远低于矢量化操作和apply方法,仅适合数据量较小、逻辑复杂无法用向量化实现的场景使用。
两种方法的输出都和期望格式一致:
Text Result index 0 Cool False 1 Drunk False 2 Study False
内容的提问来源于stack exchange,提问作者Abhishek Kumar
相关产品推荐
相关产品推荐

