簡體   English   中英

根據列值過濾Python中的熊貓dataframe

[英]Filtering panda dataframe in Python based on column value

所以,我創建了這個 dataframe...

survey = pd.DataFrame(data=[[ 6893 , 'F' , 23 , 'Mar' , 57126.33 ] ,
                        [ 4198 , 'F' , 57 , 'Res' , 43911.31 ] ,
                        [ 6265 , 'M' , 43 , 'Mar' , 48624.71 ] ,
                        [ 4900 , 'D' , 54 , 'Mar' , 54350.30 ] ,
                        [ 6704 , 'M' , 44 , 'Res' , 35071.43 ] ,
                        [ 9109 , 'D' , 53 , 'Res' , 47676.86 ] ,
                        [ 4528 , 'F' , 24 , 'Man' , 42470.49 ] ,
                        [ 6785 , 'M' , 44 , 'Res' , 52408.86 ] ,
                        [ 3356 , 'F' , 57 , 'Man' , 35537.07 ] ,
                        [ 7469 , 'D' , 54 , 'Man' , 46918.93 ] ,
                        [ 1434 , 'F' , 67 , 'Res' , 50906.68 ] ,
                        [ 8219 , 'D' , 22 , 'Mar' , 48797.58 ] ,
                        [ 1207 , 'M' , 60 , 'Man' , 45230.00 ] ,
                        [ 2362 , 'F' , 55 , 'Man' , 44164.64 ] ,
                        [ 3542 , 'F' , 42 , 'Res' , 48144.46 ] ,
                        [ 1277 , 'F' , 37 , 'Mar' , 49506.02 ] ,
                        [ 9538 , 'M' , 43 , 'Man' , 54627.42 ] ,
                        [ 7313 , 'D' , 62 , 'Man' , 59909.78 ] ,
                        [ 9064 , 'M' , 35 , 'Mar' , 49802.22 ] ,
                        [ 4725 , 'F' , 23 , 'Res' , 55224.95 ] ,
                        [ 2103 , 'M' , 33 , 'Mar' , 46075.63 ] ,
                        [ 7076 , 'M' , 54 , 'Mar' , 43206.42 ] ,
                        [ 9743 , 'F' , 43 , 'Res' , 39168.57 ] ,
                        [ 5148 , 'M' , 59 , 'Res' , 42171.72 ] ,
                        [ 4771 , 'M' , 64 , 'Man' , 60375.02 ] ,
                        [ 6096 , 'F' , 27 , 'Man' , 66510.43 ] ,
                        [ 1088 , 'F' , 56 , 'Res' , 43423.36 ]],
                         columns = ['SSID' , 'Gender' , 'Age' , 'Department' , 'Salary'])

我想使用過濾器方法計算年齡超過 50 歲的員工的工資中位數。

我用了...

def filterf (x):
            return x['Age']. median () > 50

survey.groupby('Salary').filter(filterf).median()

但這並不能完全返回我正在尋找的東西。 想法?

首先按年齡過濾,然后在薪水列上應用中位數

調查[調查['年齡'] > 50 ]['薪水'].median()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM