我有一个非常具体的问题,与直接应用于daraframe(例如df.loc [])(而不是在定义的方法中然后应用)相对时,“。loc”函数在后端如何工作使用“ df.apply()”。
这是我正在使用的MultiIndex数据帧结构。
[我的DataFrame 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时,返回正确的输出,即te下2列的总和“ deep_impressions”外部列索引。
但是,当不使用已定义的方法来应用相同的逻辑时,我必须明确声明所有行和仅“ deep_impressions”列将被求和。
df.loc[:,'deep_impressions'] > 0
df.sum(axis=1)
df
为什么在定义的方法中使用python时,我不要求我明确声明(.loc [:,“ deep_impressions])?它如何在后端工作?