测试一个Pandas(多)索引是否是另一个的子集

时间:2018-03-29 20:50:29

标签: python pandas

如何测试一个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

2 个答案:

答案 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)

您可以使用isinall

df1.index.isin(df0.index).all()

True

df2.index.isin(df0.index).all()

False