簡體   English   中英

根據匯總值從數據框中選擇行

[英]select rows from Dataframe based on aggregated value

我有一個按患者/就診方式輸入的患者信息的數據框。 我想為僅一次就診的患者選擇所有患者/就診數據。 通常,我希望能夠根據該數據的任何分組和匯總值來選擇數據。

我目前的做法是合並,但這很麻煩。

dfg = dfmn.groupby(['pt_studyid']).size().to_frame("count").reset_index()
dfgu = dfg[dfg['count']>1]
dfmn_filt = dfgu.merge(dfmn, on=['pt_studyid']).drop('count', 1)

有沒有更清潔的方法?

使用DataFrameGroupBy對象的filter方法

dfmn.groupby('pt_studyid').filter(lambda x: len(x) > 1)

dfmn = pd.DataFrame(dict(pt_studyid=list('AAAABBBCDEFFF'), val=range(13)))
dfmn

   pt_studyid  val
0           A    0
1           A    1
2           A    2
3           A    3
4           B    4
5           B    5
6           B    6
7           C    7
8           D    8
9           E    9
10          F   10
11          F   11
12          F   12

過濾

print(dfmn.groupby('pt_studyid').filter(lambda x: len(x) > 1))

   pt_studyid  val
0           A    0
1           A    1
2           A    2
3           A    3
4           B    4
5           B    5
6           B    6
10          F   10
11          F   11
12          F   12

暫無
暫無

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

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