如何将索引传递给函数Python Pandas

时间:2014-11-17 16:41:24

标签: python pandas

我正在尝试将df中的索引传递给我的函数,以便我的函数可以遍历df的所有行,并提供输出,这是一个名为“TDNumber”的新列中的int。

这是代码

 def createTdnumber(onedfindex):
    header.index    
    maski = header.index < onedfindex 
    finder = header[maski]
    tdnumber = max(finder.index)
    return tdnumber

df['TDNumber'] = df.index.apply(createTdnumber())

如下所示掩码应该接收一个数字,例如227 那个227将是df.index.apply为函数

提供的数字之一
 def createTdnumber(onedfindex):
    header.index    
    maski = header.index < 227 
    finder = header[maski]
    tdnumber = max(finder.index)
    return tdnumber

df['TDNumber'] = df.index.apply(createTdnumber())

此代码生成错误'Int64Index'对象没有属性'apply'

对于'Int64Index',如何将这些数字一次传递给我的函数?

header.index 

我的输出是

 Int64Index([0, 226, 470, 659, 863, 1108], dtype='int64')
当我运行

时,从shx2解决方案

df.index.to_series()

输出结果为:

1          1
2          2
3          3
4          4
5          5
6          6
7          7
8          8
9          9
227      227
228      228
229      229
230      230
471      471
472      472
473      473
474      474
475      475
476      476

1 个答案:

答案 0 :(得分:1)

索引类型没有apply方法,但Series有。

要将函数应用于索引,可以先使用to_series方法将其转换为系列:

df['TDNumber'] = df.index.to_series().apply(createTdnumber)