Python 将函数应用于数据帧中的特定单元格

Python 将函数应用于数据帧中的特定单元格,python,pandas,dataframe,Python,Pandas,Dataframe,我想对数据帧中的一些单元格应用一个函数。不是沿着列轴或行轴,而是跨越整个数据帧,而只是一些单元格 我已经存储了单元索引(在(col,row)元组列表中,但我可以存储任何格式,使这个问题更容易解决) 例如,如果我的数据帧是: 0 1 2 0 1 2 1 1 2 1 3 2 0 0 1 我想将my_func=lambda x:x+1(编辑:或其他一些my_func,例如my_func=lambda x:str(x)+str(x)+“!”,我只是举一个例子,因为它很容易显示输出)到单元格索引[(

我想对数据帧中的一些单元格应用一个函数。不是沿着列轴或行轴,而是跨越整个数据帧,而只是一些单元格

我已经存储了单元索引(在(col,row)元组列表中,但我可以存储任何格式,使这个问题更容易解决)

例如,如果我的数据帧是:

  0 1 2
0 1 2 1
1 2 1 3
2 0 0 1
我想将
my_func=lambda x:x+1
(编辑:或其他一些my_func,例如
my_func=lambda x:str(x)+str(x)+“!”
,我只是举一个例子,因为它很容易显示输出)到单元格索引
[(0,1)、(0,2)、(1,2)]
,以获得:

  0 1 2
0 1 2 1
1 3 1 3
2 1 1 1
那么,有没有更好的方法在我的索引元组列表上运行
dataframe.iat[col,row]=my_func(dataframe.iloc[col,row])
循环


(我想尝试制作一个函数,对照从列表中创建的一组元组检查索引,并且仅在索引存在时应用我的函数,但是
apply
,我能找到的唯一批量应用程序函数,跨轴运行,而不是逐单元运行,因此无法检查索引…)

使用底层的
numpy
数组:

x, y = zip(*idx)
df.to_numpy()[y, x] += 1


谢谢,我想这是我的错误,因为我用了特殊的方式来表达这个问题,但我并不是特别要加1,我指的是任意函数。我进行了编辑以使其更加清晰,我将研究您在此处引用的numpy索引。@dWitty只要您将函数的结果分配给该切片,您执行的操作并不重要。
   0  1  2
0  1  2  1
1  3  1  3
2  1  1  1