![](/img/trans.png)
[英]select rows from a DataFrame based on column value, limit to 16384 rows
[英]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.