0

我有一个非常具体的问题,关于“.loc”函数如何在后端工作时 1. 直接应用于 daraframe(例如 df.loc[]),而不是在定义的方法中使用,然后使用“df 。申请()”。

这是我正在使用的 MultiIndex 数据帧结构。

[我的数据框1 ]

#Sample Function
def sample(df):
    for i in df:
        val = df.loc['deep_impressions'] > 0
        return val.sum()
df.apply(sample, axis=1)

上面的代码使用.loc没有行/列指示,只需传递外列标签,当应用于 DataFrame 时,返回正确的输出,即“deep_impressions”外列索引下的 2 列的总和。

但是,当应用相同的逻辑而不使用定义的方法时,我必须明确声明所有行,并且只有“deep_impressions”列被求和。

df.loc[:,'deep_impressions'] > 0 
df.sum(axis=1)
df

为什么 python 在定义方法中使用时不需要我显式声明 (.loc[:,"deep_impressions])?它在后端是如何工作的?

4

0 回答 0