我是新來的數據幀,所以我道歉,如果有明顯的問題,假設我有一個看起來像一個數據幀:一種方法來檢查,如果數據幀包含一個較小的數據幀
1 2 3
4 5 6
7 8 9
和我想檢查它是否包含以下數據幀:
5 6
8 9
是在有任何功能建立pandas.dataframe該辦呢?
我是新來的數據幀,所以我道歉,如果有明顯的問題,假設我有一個看起來像一個數據幀:一種方法來檢查,如果數據幀包含一個較小的數據幀
1 2 3
4 5 6
7 8 9
和我想檢查它是否包含以下數據幀:
5 6
8 9
是在有任何功能建立pandas.dataframe該辦呢?
假設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
非常感謝,爲我節省了很多時間。 – 2014-11-06 13:28:18
@MaximDunavicher,不是概率,很高興幫助:) – Anzel 2014-11-06 13:31:35
不知道這是否是最有效的方式,但以下工作:'(np.intersect1d(DF,DF1)== df1.values.ravel())所有()==真' – EdChum 2014-11-06 10:35:43