函数内部与函数外部的Python.loc

函数内部与函数外部的Python.loc,python,pandas,dataframe,loc,Python,Pandas,Dataframe,Loc,我有一个非常具体的问题,关于.loc函数在1时如何在后端工作。直接应用于daraframe(例如df.loc[]),而不是在定义的方法中使用,然后使用“df.apply()”应用 这是我正在使用的多索引数据帧结构 [我的数据帧] 上述代码使用.loc而无行/列指示,只需传递外部列标签,当应用于数据帧时,返回正确的输出,即te“deep_impressions”外部列索引下的两列之和 但是,当应用相同的逻辑而不使用定义的方法时,我必须明确声明所有行,并且只对“deep_impressions”列求

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

这是我正在使用的多索引数据帧结构

[我的数据帧]

上述代码使用.loc而无行/列指示,只需传递外部列标签,当应用于数据帧时,返回正确的输出,即te“deep_impressions”外部列索引下的两列之和

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

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

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

这与调用
loc
的位置无关,即在函数内部或外部,而是调用它的内容。当您将函数传递给
.apply
时,该函数传递的是
pd.Series
而不是
pd.DataFrame
,each
pd.Series
作为该数据帧的一列或一行。Python没有数据帧。可能您正在使用熊猫或其他东西?请添加相关标记。
df.loc[:,'deep_impressions'] > 0 
df.sum(axis=1)
df