2016-01-18 49 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