我常常最終會做這樣的事情在pandas
:大熊貓GROUPBY和布爾選擇
s2 = s1.groupby(level=1).sum()
s2 = s2[s2>25]
在的話,我做了一些groupby
操作,然後只保留滿足的結果一定條件下的結果。
在一行中有辦法嗎?更具體地說,是否可以在不創建系列的情況下執行此操作,然後在第二步中執行布爾選擇?
我常常最終會做這樣的事情在pandas
:大熊貓GROUPBY和布爾選擇
s2 = s1.groupby(level=1).sum()
s2 = s2[s2>25]
在的話,我做了一些groupby
操作,然後只保留滿足的結果一定條件下的結果。
在一行中有辦法嗎?更具體地說,是否可以在不創建系列的情況下執行此操作,然後在第二步中執行布爾選擇?
.loc
+ lambda
SERISE
df.groupby('name').a.sum().loc[lambda x: x>20]
Out[492]:
name
Chn 84
Fra 165
Ind 71
數據框中
df.groupby('name').a.sum().to_frame().loc[lambda x: x['a']>20]
Out[490]:
a
name
Chn 84
Fra 165
Ind 71
DataInput中的
df=pd.DataFrame({'name':['Ind','Chn','SG','US','SG','US','Ind','Chn','Fra','Fra'],'a':[5,6,3,4,7,12,66,78,65,100]})
假設s1
是pandas.Series
level
到pd.Series.sum
pd.Series.compress
是得心應手s2.sum(level=1).compress(lambda s: s.gt(25))
假設s1
是pandas.DataFrame
,並且有一個列名'col'
s.sum(level=1).query('col > 25')
有趣,以前沒見過這個。在這裏找到文檔:https://pandas.pydata.org/pandas-docs/stable/indexing.html#selection-by-callable – itzy
@itzy cheers〜:) – Wen