我有一个非常具体的问题,关于“.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])?它在后端是如何工作的?