我正在尝试在整个DataFrame
Pandas中应用的函数中访问行的索引。我有这样的事情:
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
太棒了!现在,如果我想将索引合并到函数中怎么办?DataFrame
在添加之前,该行中任何给定行的索引都d
将是Index([u'a', u'b', u'c', u'd'], dtype='object')
,但是我想要0和1。所以我不能只访问row.index
。
我知道我可以在存储索引的表中创建一个临时列,但是我想知道它是否存储在行对象的某个地方。
实际上,@ DSM我在使用不同的行元素为每一行调用另一个对象构造函数。我只是想举一个最小的例子来说明这个问题。
—
2014年
apply
吗?这比在框架本身上执行矢量化操作慢得多。(有时应用是做某事的最简单方法,并且通常会夸大性能注意事项,但对于您的特定示例,不使用它同样容易。)