我经常会在 pandas
中做这样的事情:
s2 = s1.groupby(level=1).sum()
s2 = s2[s2>25]
简而言之,我进行了一些 groupby
操作,然后想要仅保留符合某些条件的结果。
有没有一种方法可以在一行代码中完成?更具体地说,是否可以在不创建系列并在第二步进行布尔选择的情况下完成此操作?
我经常会在 pandas
中做这样的事情:
s2 = s1.groupby(level=1).sum()
s2 = s2[s2>25]
简而言之,我进行了一些 groupby
操作,然后想要仅保留符合某些条件的结果。
有没有一种方法可以在一行代码中完成?更具体地说,是否可以在不创建系列并在第二步进行布尔选择的情况下完成此操作?
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')
.loc
+ lambda
Serise
df.groupby('name').a.sum().loc[lambda x: x>20]
Out[492]:
name
Chn 84
Fra 165
Ind 71
Dataframe
df.groupby('name').a.sum().to_frame().loc[lambda x: x['a']>20]
Out[490]:
a
name
Chn 84
Fra 165
Ind 71
数据输入
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]})