python - 为 Pandas 数据框中的每一行运行一次函数

标签 python function numpy pandas

<分区>

如果我有一个函数

def do_irreversible_thing(a, b):
    print a, b

还有一个数据框,比如说

df = pd.DataFrame([(0, 1), (2, 3), (4, 5)], columns=['a', 'b'])

为 Pandas 数据框中的每一行恰好运行函数的最佳方式是什么。 As其他指出questions ,像 df.apply pandas 这样的东西会为第一行调用函数两次。甚至使用 numpy

np.vectorize(do_irreversible_thing)(df.a, df.b)

导致函数在第一行被调用两次,df.T.apply() 或 df.apply(..., axis=1) 也是如此。

有没有比这个显式循环更快或更简洁的方法来调用每一行的函数?

   for idx, a, b in df.itertuples():
       do_irreversible_thing(a, b)

最佳答案

我这样做的方式(因为我也不喜欢用 df.itertuples 循环的想法)是:

df.apply(do_irreversible_thing, axis=1)

然后你的函数应该是这样的:

def do_irreversible_thing(x):
    print x.a, x.b

这样你应该能够在每一行上运行你的函数。

如果您不能修改您的函数,您可以像这样应用

df.apply(lambda x: do_irreversible_thing(x[0],x[1]), axis=1)

关于python - 为 Pandas 数据框中的每一行运行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36609457/

相关文章:

c++ - C/C++ 函数 - 如何允许原型(prototype)?

python - 将 numpy.matrix 转换为 C 双指针的正确方法

python - 如何生成 2D 有色噪声

Python:找出列表中的元素是否具有特定字符串

c++ - 有没有办法在调用之前检查函数签名?

javascript - 将相同函数分配给 JavaScript 中的多个变量时的性能问题

python - 使用对象检测时出现 Open cv 错误

python - 在 Pandas 数据框中矢量化条件赋值

python - 将 django_xhtml2pdf 与 django 1.1 一起使用 1"error: context must be a dict rather than Context."

python - python 提示加载的幕后事件