Function 熊猫:使用变量作为列
我试图定义一个函数,将变量传递到各种数据帧函数中。在下面的例子中,我将.loc与定义的变量一起使用。由于某些原因,我似乎无法在应用该函数后生成所需的结果Function 熊猫:使用变量作为列,function,python-3.x,pandas,Function,Python 3.x,Pandas,我试图定义一个函数,将变量传递到各种数据帧函数中。在下面的例子中,我将.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]
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
提前谢谢 您的函数正在副本上运行,因此您应该返回它,以便它在函数范围之外分配:
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
您的函数正在副本上运行,因此您应该返回副本,以便它在函数范围之外进行分配:
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
它看起来像是在一个副本上运行的。你应该返回
df.loc[df[col2]==1]
,然后将返回的df分配给df
,所以我尝试从“df.loc…”行中取出“df=”,但它没有返回任何内容。将你的函数更改为:def pandfun(df,col2):返回df.loc[df[col2]==1]
,然后它应该可以正常工作了。你是最棒的!它看起来像是在一个副本上运行的。你应该返回df.loc[df[col2]==1]
,然后将返回的df分配给df
,所以我尝试从“df.loc…”行中取出“df=”,但它没有返回任何内容。将你的函数更改为:def pandfun(df,col2):返回df.loc[df[col2]==1]
,然后它应该可以正常工作了。你是最棒的!