我正在尝试在 Pandas 中应用于整个 DataFrame
的函数中访问行的索引。我的代码类似于:
df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'])
>>> df
a b c
0 1 2 3
1 4 5 6
我将定义一个函数,用于访问给定行的元素
def rowFunc(row):
return row['a'] + row['b'] * row['c']
我可以这样使用它:
df['d'] = df.apply(rowFunc, axis=1)
>>> df
a b c d
0 1 2 3 7
1 4 5 6 34
太棒了!那么如果我想在函数中加入索引应该怎么做呢? 在添加d之前,此DataFrame中任何给定行的索引将为Index([u'a', u'b', u'c', u'd'], dtype='object')
,但我只想要0和1。 所以我不能直接访问row.index
。
我知道我可以在表格中创建一个临时列来存储索引,但我想知道它是否存储在行对象中的某个位置。
apply
的原因是什么?它比在框架本身上执行向量化操作要慢得多。(有时,应用程序确实是完成某些操作最简单的方法,并且性能考虑经常被夸大,但对于您特定的示例,不使用它同样容易。) - DSM