我有以下由 ID 和關聯的簇號組成的資料框“資料”:
ID cluster
FP_101 1
FP_102 1
SP_209 3
SP_300 3
SP_209 1
FP_45 90
SP_50 90
FP_398 100
...
我想列印包含多個以 SP 和/或 FP 開頭的 ID 的集群。我認為我有答案的兩個部分,但只是不知道以適當的方式將它們結合起來:
- data = data[data['ID'].str.startswith('FP')] (對于 SP 相同)
- 選擇函式:data = data.groupby(['cluster']).filter(lambda x: x['ID'].nunique() > 1)
結果應該來自上一個示例:
ID cluster
FP_101 1
FP_102 1
SP_209 1
SP_209 3
SP_300 3
我怎樣才能結合安排這些功能來獲得這個結果?
uj5u.com熱心網友回復:
這是我對你的問題的理解;讓我知道是否有幫助:
- 分離 SP & FP
df['Prefix'] = df['ID'].apply(lambda x: x.split('_')[0])
- 按集群分組
df2 = df.groupby(['cluster', 'Prefix'], as_index = False).agg({'ID':['nunique','unique']})
- 過濾
df2.columns = df2.columns.to_flat_index().str.join('') df2[df2['IDnunique']>1]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/526616.html
標籤:Python数据框筛选
上一篇:大家好,我想轉置我的資料框
