2014-11-06 39 views
0

我是新來的數據幀,所以我道歉,如果有明顯的問題,假設我有一個看起來像一個數據幀:一種方法來檢查,如果數據幀包含一個較小的數據幀

1 2 3 
    4 5 6 
    7 8 9 

和我想檢查它是否包含以下數據幀:

5 6 
    8 9 

是在有任何功能建立pandas.dataframe該辦呢?

+0

不知道這是否是最有效的方式,但以下工作:'(np.intersect1d(DF,DF1)== df1.values.ravel())所有()==真' – EdChum 2014-11-06 10:35:43

回答

1

假設2個dataframes具有相同的相對列和索引(我假設如此,因爲它們數據幀不只是值的數組),這裏是一個快速的解決方案(不是最優雅的或有效的),您combine_first後比較兩個dataframes:

DataFrame.combine_first(其他)

組合兩個數據幀的對象和 默認到非空值在幀調用該方法。結果指數 列將是相應的指標和列

例中的工會:

df 
    a b c 
0 1 2 3 
1 4 5 6 
2 7 8 9 

df1 
    a b 
1 4 5 
2 7 8 

all(df1.combine_first(df) == df.combine_first(df1)) 
True 

,或者,如果你想檢查DF1(較小)是在DF(你知道它們的大小的話) :

all(df == df1.combine_first(df)) 
True 
+0

非常感謝,爲我節省了很多時間。 – 2014-11-06 13:28:18

+0

@MaximDunavicher,不是概率,很高興幫助:) – Anzel 2014-11-06 13:31:35

相關問題