【发布时间】:2015-11-25 16:19:57
【问题描述】:
我正在尝试定义一个将变量传递给各种数据框函数的函数。在下面的例子中,我使用 .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
提前致谢!
【问题讨论】:
-
看起来它正在操作一个副本,您应该返回
df.loc[df[col2]==1],然后将返回的df分配给df -
所以我尝试从“df.loc...”行中取出“df =”,但没有返回任何内容。
-
将您的功能更改为:
def pandfun(df, col2): return df.loc[df[col2] == 1]然后它应该可以工作 -
做到了。你是最棒的!
标签: function python-3.x pandas