首页 > 解决方案 > 如何在数据框中应用多行数据

问题描述

我是 python 和 Pandas 的新手,我有一个庞大的数据集,并且逐行应用函数我想应用于一批行并返回结果并关联回相同的相应行

例子:

ID  Values
a   2
b   3
c   4
d   5
e   6
f   7

df['squared_values']= df['values'].apply(lambda row: function(row))

def function(x):
   #making call to api and returning values related to x
   return response

以上一个逐行应用函数,这是耗时的

我需要一种对行进行批处理操作的方法

example:


batch=3


df['squared_values']= df['values'].apply(lambda batch: function(batch))

on first pass values should be 

ID  Values squared_values
a   2        4
b   3        9
c   4        16
d   5
e   6
f   7

on second pass 
ID  Values squared_values
a   2        4
b   3        9
c   4        16
d   5        25
e   6        36
f   7        49

标签: pandas

解决方案


这个操作真的太慢了​​吗?

df['squared_values'] = df['Values'] ** 2

您可以随时添加 iloc 来选择行:

df.iloc['squared_values'].update(df.iloc[0:4]['Values'] ** 2)

但我无法想象这会更快


推荐阅读