当前位置: 首页 > 知识库问答 >
问题:

在pandas apply函数中获取行的索引

高寒
2023-03-14
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

共有1个答案

薄兴昌
2023-03-14

要访问索引,在本例中,您可以访问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.name
df['d'] = df.apply(rowFunc, axis=1)
df['rowIndex'] = df.apply(rowIndex, axis=1)
df
Out[182]:
   a  b  c   d  rowIndex
0  1  2  3   7         0
1  4  5  6  34         1

请注意,如果这真的是您想要做的,那么以下工作将会更快:

In [198]:

df['d'] = df['a'] + df['b'] * df['c']
df
Out[198]:
   a  b  c   d
0  1  2  3   7
1  4  5  6  34

In [199]:

%timeit df['a'] + df['b'] * df['c']
%timeit df.apply(rowIndex, axis=1)
10000 loops, best of 3: 163 µs per loop
1000 loops, best of 3: 286 µs per loop

编辑

In[15]:
df['d'],df['rowIndex'] = df['a'] + df['b'] * df['c'], df.index
df

Out[15]: 
   a  b  c   d  rowIndex
0  1  2  3   7         0
1  4  5  6  34         1
In[16]:
df['newCol'] = df['a'] + df['b'] + df['c'] + df.index
df

Out[16]: 
   a  b  c   d  rowIndex  newCol
0  1  2  3   7         0       6
1  4  5  6  34         1      16
 类似资料:
  • 问题内容: 我试图访问在整个Pandas中应用的函数中的行的索引。我有这样的事情: 我将定义一个函数来访问给定行的元素 我可以这样应用它: 太棒了!现在,如果要将索引合并到函数中怎么办?在添加之前,该行中任何给定行的索引都将是,但是我想要0和1。所以我不能只访问。 我知道我可以在存储索引的表中创建一个临时列,但是我想知道它是否存储在行对象中的某个地方。 问题答案: 在这种情况下,要访问索引,请访问

  • 问题内容: 我在index.xhtml上有数据打包 我的豆子: 我的问题是,即使单击不同的编辑按钮,我也总是在服务器日志中获得相同的索引。想象有一个提供给数据表的集合。我没有在bean中显示出来。 如果我将范围从ViewScope更改为RequestScope,则可以正常工作。可能是什么问题?提前致谢 :) 编辑: 问题答案: 您已经将组件绑定到了bean。您需要做的只是: 在也这里不需要。有关更

  • 问题内容: 如何获得调用当前函数的函数的名称和行?我想要一个像这样的基本调试功能(使用npmlog定义): 当从另一个函数调用时,它将是这样的: 为了清楚起见,我想要的基本上与[ython中的类似: 是否有等效的Node来完成此任务? 问题答案: 您可以添加一些原型以提供从V8访问此信息的权限: 分别返回“ 28”和“ foo”。

  • 如何在JavaFX的网格窗格中获取列索引和行索引。请参见下面的代码 当鼠标在text1上输入时,我想获取GridPane的列索引和行索引 请让我知道。

  • 问题内容: 我是numpy的新手,并且正在python中使用随机森林实现集群。我的问题是: 如何找到数组中确切行的索引?例如 我寻找并得到结果1(第二行的索引)。 有什么建议吗?遵循代码(不起作用…) 问题答案: 为什么不简单地做这样的事情?

  • 问题内容: 是否可以获取从调用范围返回函数的行号? 例: 我认为这是不可能的,因为它应该已经从堆栈中删除了,但是也许它仍然被缓存在某个地方? 用例是我有一个HTTP处理程序,我想记录返回错误的行和文件名,而不必乱扔代码。 问题答案: AFAIK,不可能自动获取执行最后一次返回的行。 但是,有了一个小帮手,您可以拥有: 操场 输出: