如何使用`apply`和一个函数遍历df行值

我有这张桌子

well        MRPW1      MRPW2      MRPW3      MRPW4       MRPW5      MRPW6      MRPW7      MRPW8      MRPW9     MRPW10  MRPW11  MRPW12

well1        NaN        NaN        NaN   0.115293   76.652246  67.545672  47.503333  56.198555  47.008101  44.703443     NaN     NaN
well2        NaN        NaN        NaN        NaN  112.594625  79.635218  54.754644  72.015028  82.042539  72.871044     NaN     NaN
well3        NaN        NaN        NaN        NaN         NaN        NaN   1.607063  89.893566  90.315224  85.814613     NaN     NaN

我使用了这段代码。我需要遍历每一行的值,并产生一个分配给新列的数字。 总和只是这里的一个例子,但我想对此循环进行另一次计算。这是我想在这里实现的循环。

df=df.fillna(0)


def calcMRPW(row):
    sum=0
    for x in row:
        #sum is only an example. what I really need is to loop through the row values.
        sum=x+sum
    return sum


 df["sum"]=df.loc[:,"MRPW1":"MRPW10"].apply(calcMRPW)

print(df.head())

这是结果

well       MRPW1      MRPW2      MRPW3      MRPW4       MRPW5      MRPW6      MRPW7      MRPW8      MRPW9     MRPW10  MRPW11  MRPW12  sum
well1     0.000000   0.000000   0.000000   0.115293   76.652246  67.545672  47.503333  56.198555  47.008101  44.703443     0.0     0.0  NaN
well2     0.000000   0.000000   0.000000   0.000000  112.594625  79.635218  54.754644  72.015028  82.042539  72.871044     0.0     0.0  NaN
well3     0.000000   0.000000   0.000000   0.000000    0.000000   0.000000   1.607063  89.893566  90.315224  85.814613     0.0     0.0  NaN

该函数的乘积为NaN。我该如何工作?

lhp1231 回答:如何使用`apply`和一个函数遍历df行值

如果要遍历一行,则需要添加axis=1

df['sum'] = df.loc[:,"MRPW1":"MRPW10"].apply(calcMRPW,axis=1)

本文链接:https://www.f2er.com/3167778.html

大家都在问