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

Python中使用Pandas的.apply()时如何获取当前行索引?

解决Pandas.apply()中获取当前行数据及索引的问题

你的问题核心在于当你只对单个列调用.apply()时,函数只能拿到该列的单个元素,无法直接获取当前行的索引或其他列的数据。你不需要单独去获取行索引,更高效的方式是让.apply()处理整个行,这样就能同时访问col1和col2的数据。

下面是修改后的完整解决方案:

方法1:处理整行数据(推荐)

将.apply()的axis参数设置为1,这样函数会接收每一行的Series对象,你可以直接从中获取col1和col2的数据,完全不需要依赖行索引:

import pandas as pd

str1 = 'The weight of a apple'
str2 = 'Apple MacBook release date news and rumors'
list1 = ['DET', 'NOUN', 'ADP', 'DET', 'NOUN']
list2 = ['PROPN', 'NOUN', 'NOUN', 'NOUN', 'CCONJ', 'PROPN']
df = pd.DataFrame(
    {
        'col1': [str1, str2],
        'col2': [list1, list2]
    }
)

# 修改后的自定义函数,接收整行数据
def find_apple(row):
    keyword = 'apple'
    text = row['col1']
    pos_list = row['col2']
    words = text.lower().split(' ')
    if keyword in words:
        word_index = words.index(keyword)
        # 直接从当前行的col2列表中取值
        return pos_list[word_index]
    else:
        return 'None'

# 调用apply时设置axis=1,处理每一行
df['col3'] = df.apply(find_apple, axis=1)

print(df)

运行后输出:

col1                                            col2  col3
0                          The weight of a apple                [DET, NOUN, ADP, DET, NOUN]  NOUN
1  Apple MacBook release date news and rumors  [PROPN, NOUN, NOUN, NOUN, CCONJ, PROPN]  None

方法2:获取行索引(如果确实需要)

如果你一定要获取当前行的索引,可以通过row.name拿到,但前提同样是用axis=1让函数接收整行:

def find_apple_with_index(row):
    keyword = 'apple'
    curr_row_index = row.name  # 获取当前行索引
    text = row['col1']
    words = text.lower().split(' ')
    if keyword in words:
        word_index = words.index(keyword)
        value = df.loc[curr_row_index, 'col2'][word_index]
        return value
    else:
        return 'None'

df['col3'] = df.apply(find_apple_with_index, axis=1)

不过这种方法不推荐,因为它依赖全局的df对象,不如直接从row中取col2数据更直观和高效。

你原来代码的问题分析

  1. 你调用df['col1'].apply(find_apple)时,函数find_apple只接收到col1的单个字符串,没有行的上下文,所以无法获取索引或其他列。
  2. 你尝试的df.index是整个DataFrame的索引对象,不是当前行的索引;而row.name在你原来的函数里根本不存在,因为函数参数是单个text,不是row。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:52:32