换句话说,假设我有一个带有一些列的数据框,并且表中有数字数据。例如,我有身高,体重,年龄。带有数字的简单数据框。
我想要的是创建一个新系列(并将其添加到数据框),该系列是使用每一行中的每个项目进行某些计算的结果。 所以我有一个函数f(身高,体重,年龄),我希望该函数的数值结果存储为它自己的新列。
所以在给定的行上,我将得到身高,体重,年龄和f()的结果。
对不起,我浏览了许多熊猫应用示例,尽管看起来似乎应该可行,但找不到任何可以完全满足我的想法的东西!
谢谢!
答案 0 :(得分:1)
让我们来看一个例子,其中有一个我们拥有体重和身高的数据框。
我们可以使用apply
函数将函数应用于具有所有列或选定列的每一行,如下所示:
df = pd.DataFrame({"height": [180, 178, 190, 166], 'weight': [78, 72, 89, 75] })
print(df)
height weight
0 180 78
1 178 72
2 190 89
3 166 75
def bmi(x):
return x.weight/((x.height/100)**2)
df['bmi'] = df.apply(lambda x: bmi(x), axis=1)
print(df)
height weight bmi
0 180 78 24.074074
1 178 72 22.724403
2 190 89 24.653740
3 166 75 27.217303
答案 1 :(得分:0)
现在,如果我理解正确,您的函数会使用您的数据(高度,重量和年龄)为每一行计算一个值,该值将位于数据框中的新列中,对吗?
现在您要逐行执行此操作,我不确定为什么这样做?您是否要遍历数据框?我没有关于您的功能的足够信息来告诉您是否真的需要这样做,但是通常我会避免使用这种方法,因为它比运行如下所示的胜利过程要慢得多:
--present-mode 0
示例,假设您的函数将身高乘以体重,然后再除以年龄,因此您可以执行以下操作:
--present-mode 2