[英]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.