2017-07-19 4 views
0

2つのDataFramesを比較し、長さが同じであればTrueを返し、長さの違いと出力行がないことを返すユニットテストを開発しようとしています。例えばユニットテストパンダDataFrame

: 例1:

df1 = {0,1,2,3,4} 
df2 = {0,1,2,3,4} 

例2:

df1 = {0,1,2,3,4} 
df2 = {0,2,3,4} 

偽。 2がありません。

df1の2番目の項目がdf2にないことを通知します。

これは可能ですか?あなたはpd.util.testing.assert_equal(DF1、DF2)を行うことができ、あなたの問題のために

をpd.util.testing

答えて

2

は、私が最初にあなたが望むものを決定する必要がありだと思う。どちらか2つのデータフレーム間の差を返す関数である。

前者の場合は、あなたがpd.util.testing.assert_frame_equalを使用することができる場合:

first = pd.DataFrame(np.arange(16).reshape((4,4)), columns=['A', 'B', 'C', 'D']) 
first['A'][0] = 99 
second = pd.DataFrame(np.arange(16).reshape((4,4)), columns=['A', 'B', 'C', 'D']) 

pd.util.testing.assert_frame_equal(first, second) 

あなた DataFrameのは、あなたが本当にしたい場合は、後者の場合は、アサーション・エラー

AssertionError: DataFrame.iloc[:, 0] are different 

DataFrame.iloc[:, 0] values are different (25.0 %) 
[left]: [99, 4, 8, 12] 
[right]: [0, 4, 8, 12] 

を得るでしょう異なる場合欠落している行数とデータフレームと異なる行数を示す関数ですが、探しているのは単体テストではありません。

1

チェックアウト