df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
'num_wings': [2, 0, 0, 0],
'num_specimen_seen': [10, 2, 1, 8]},
index=['falcon', 'dog', 'spider', 'fish'])
其中
num_legs
,num_wings
和num_specimen_seen
是列。现在,我有一个像
('num_wings', 'num_legs')
的元组,想检查是否有df列的值?如果是,则返回true,否则返回false。('num_wings', 'num_legs')
->这将返回true('abc', 'num_legs')
->否 最佳答案
您可以在此处使用get_indexer
。
idxr = df.columns.get_indexer(tup)
all(idxr>-1)
性能
cols = pd.Index(np.arange(10_000))
tup = tuple(np.arange(10_001))
%timeit all(cols.get_indexer(tup)>-1)
3.86 ms ± 87.1 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit all(e in cols for e in tup)
5.96 ms ± 69.6 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
关于python - Pandas 和元组检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57928364/