我有一個數據集,我正在分組,然後嘗試刪除在特定列中沒有數據的任何組。例如:過濾掉所有NaN列的組
df = pd.DataFrame{'movie': ['thg', 'thg', 'mol', 'mol', 'lob', 'lob'],
'rating': [3., 4., 5., np.nan, np.nan, np.nan],
'name': ['John', np.nan, 'Terry', 'Graham', 'Eric', np.nan]}
g = df.groupby('movie')
movie name rating
0 thg John 3
1 thg NaN 4
2 mol Terry 5
3 mol Graham NaN
4 lob Eric NaN
5 lob NaN NaN
我想從數據集中刪除組lob
,因爲沒有人評分。我試過
mask = g['rating'].mean().isnull()
g.filter(~mask)
它給了我一個錯誤TypeError: 'Series' object is not callable
。這是一種hackish的,所以我也試着
g.filter(lambda group: group.isnull().all())
這似乎更Python,但它給我的ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
錯誤。我如何過濾出一個組,爲什麼我會得到這些錯誤?任何關於groupby
的其他信息通常也會有所幫助。我使用的是熊貓0.12.0,Python 2.7.5和Mac OS X 10.8.5。
編輯:不要介意不重複,但這可能會有所幫助。 http://stackoverflow.com/questions/13413590/how-to-drop-rows-of-pandas-dataframe-whose-value-of-certain-column-is-nan – Shashank