如何测试一个pandas(Multi)Index是否是另一个的子集。只要值存在,顺序无关紧要。
import pandas as pd
import numpy as np
df0 = pd.DataFrame( np.random.rand(3,10), index=['foo', 'bar', 'baz'] )
df1 = pd.DataFrame( np.random.rand(2,10), index=['baz', 'foo'])
df2 = pd.DataFrame( np.random.rand(3,10), index=['foo', 'baz', 'BLAH'] )
issubset(df0.index, df1.index) # True
issubset(df0.index, df2.index) # False
答案 0 :(得分:1)
尝试set.issubset,如:
set(df1.index).issubset(set(df0.index)) # True
set(df0.index).issubset(set(df2.index)) # False
由于pandas.Index
是(有序)数组,您希望将其转换为(无序)集合,然后使用issubset
。
答案 1 :(得分:1)
您可以使用isin
和all
:
df1.index.isin(df0.index).all()
True
df2.index.isin(df0.index).all()
False