我有一個 df:
pid ts
sid vid
1 A page1 t1
A page2 t2
A page3 t3
2 B page1 t4
3 C page1 t5
我想洗掉每個sid大小等于某個數字的所有行,比如說 = 1
偽代碼
for every sid in df:
if sid.size() == 1:
remove sid from df
結果將如下所示:
pid ts
sid vid
1 A page1 t1
A page2 t2
A page3 t3
uj5u.com熱心網友回復:
您可以groupby使用第一個索引級別和filter長度大于 1 的組:
df.groupby(level=0).filter(lambda g: len(g)>1)
輸出:
pid ts
sid vid
1 A page1 t1
A page2 t2
A page3 t3
注意。您還可以使用級別名稱:df.groupby(level='sid').filter(lambda g: len(g)>1)
使用的輸入:
df = (pd.DataFrame({'pid': {(1, 'A'): 'page3', (2, 'B'): 'page1', (3, 'C'): 'page1'},
'ts': {(1, 'A'): 't3', (2, 'B'): 't4', (3, 'C'): 't5'}})
.rename_axis(['sid', 'vid'])
)
# pid ts
# sid vid
# 1 A page3 t3
# 2 B page1 t4
# 3 C page1 t5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343418.html
上一篇:重置熊貓資料框中的索引計數
