我正在尝试定义一个将变量传递到各种数据帧函数的函数。在下面的例子中,我使用.loc和定义的变量。出于某种原因,在应用该函数后,我似乎无法产生所需的结果。
import pandas as pd
df = pd.DataFrame({'COL1':['A','A','B','B'], 'COL2': [1,1,2,2,], 'COL3': [2,3,4,6]})
col2 = 'COL2'
def pandfun(df, col2):
df = df.loc[df[col2] == 1]
df = pandfun(df, col2)
期望的结果是:
COL1 COL2 COL3
0 A 1 2
1 A 1 3
提前致谢!
答案 0 :(得分:0)
您的功能正在复制,因此您应将其返回,以便在功能范围之外进行分配:
In [117]:
df = pd.DataFrame({'COL1':['A','A','B','B'], 'COL2': [1,1,2,2,], 'COL3': [2,3,4,6]})
col2 = 'COL2'
def pandfun(df, col2):
return df.loc[df[col2] == 1]
df = pandfun(df, col2)
df
Out[117]:
COL1 COL2 COL3
0 A 1 2
1 A 1 3