熊猫:使用变量作为列

时间:2015-11-25 16:19:58

标签: 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]
df = pandfun(df, col2)

期望的结果是:

    COL1    COL2    COL3
0     A       1       2
1     A       1       3

提前致谢!

1 个答案:

答案 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