[英]selecting same data from multiple columns in pandas Dataframe
我有以下數據,
name marks team1 team2
John 30 kk vv.
Sera 56 gg ww.
Saara 66 dd gg.
Dirg 33 rr dd.
maget 34 ff rr.
fared 56 vv ff.
juile 32 ww kk.
我需要有通用公式來按行獲取記錄,在第 1 組和第 2 組中有 'kk' 這只是一個示例數據,我有超過 100k 行的實際數據。
使用帶有filter
創建的掩碼的boolean indexing
獲取帶有team
所有列,通過eq
( ==
) 進行比較並通過any
獲得每行至少一個True
:
df = df[df.filter(like='team').eq('kk').any(axis=1)]
#if want select columns by names
#df = df[df[['team1','team2']].eq('kk').any(axis=1)]
為了獲得更好的性能,請使用numpy.any
:
df = df[np.any(df.filter(like='team').values == 'kk', axis=1)]
print (df)
name marks team1 team2
0 John 30 kk vv
6 juile 32 ww kk
細節:
print (df.filter(like='team').eq('kk'))
team1 team2
0 True False
1 False False
2 False False
3 False False
4 False False
5 False False
6 False True
print (df.filter(like='team').eq('kk').any(axis=1))
0 True
1 False
2 False
3 False
4 False
5 False
6 True
dtype: bool
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.