在这种情况下,要访问索引,请访问
name属性:
In [182]:df = pd.Dataframe([[1,2,3],[4,5,6]], columns=['a','b','c'])def rowFunc(row): return row['a'] + row['b'] * row['c']def rowIndex(row): return row.namedf['d'] = df.apply(rowFunc, axis=1)df['rowIndex'] = df.apply(rowIndex, axis=1)dfOut[182]: a b c d rowIndex0 1 2 3 7 01 4 5 6 34 1
请注意,如果这确实是您要尝试执行的 *** 作,则可以使用以下命令并且速度更快:
In [198]:df['d'] = df['a'] + df['b'] * df['c']dfOut[198]: a b c d0 1 2 3 71 4 5 6 34In [199]:%timeit df['a'] + df['b'] * df['c']%timeit df.apply(rowIndex, axis=1)10000 loops, best of 3: 163 µs per loop1000 loops, best of 3: 286 µs per loop
编辑
3年后再看这个问题,您可以做:
In[15]:df['d'],df['rowIndex'] = df['a'] + df['b'] * df['c'], df.indexdfOut[15]: a b c d rowIndex0 1 2 3 7 01 4 5 6 34 1
但是假设它并不那么简单,无论您
rowFunc实际上在做什么,您都应该使用向量化函数,然后对df索引使用它们:
In[16]:df['newCol'] = df['a'] + df['b'] + df['c'] + df.indexdfOut[16]: a b c d rowIndex newCol0 1 2 3 7 0 61 4 5 6 34 1 16
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)