2016-01-18 106 views
0

我有一个数据框,我想删除一些函数中的行。为了我的一般目的,我想修改我的数据框,像这样df.groupby(['example','columns']).apply(my_function_will_modify_df)熊猫如何在功能中删除某些行?

我认为,基本上,我的问题是关于在蟒蛇引用传递所以我做了,像这样

def test(df): 
    df.drop(pd.Int64Index([1])) 
data = pd.DataFrame({'a':range(2),'b':range(2)}) 
data 
Out[1]: 
    a b 
0 0 0 
1 1 1 

一个例子当我打电话test(data),我的期望是data应该是因为这类似

data.drop(pd.Int64Index([1])) 
Out[2]: 
    a b 
0 0 0 

,但它不是

我也试过这个

def test(df): 
    p = df.copy() 
    p.drop(pd.Int64Index([1])) 

test(data) 

data 
Out[3]: 
    a b 
0 0 0 
1 1 1 

但什么也没有发生。

能否请你帮我改data内部功能test(df)

回答

2

使用关键字参数inplace=True在滴法:

def test(df): 
    df.drop(pd.Int64Index([1]), inplace=True) 
+0

感谢,如果我独自做到这一点它的工作原理。当我使用表单'df.groupby(['example','columns'])。apply(my_function_will_modify_df)'时,它不会影响。你有这种情况吗? – Bryan