2016-07-31 23 views

答えて

1

index.difference()機能を使用することができます。

In [1]: import pandas as pd 
df_1 = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]}) 
df_2 = pd.DataFrame({"A":["foo", "bar", "foo", "bar"], "B":[1,0,1,0], "C":["A","B","A","B"]}) 

In [2]: df = pd.concat([df_1, df_2]) 

In [3]: df 
Out[3]: 
    A B C 
0 foo 0 A 
1 foo 1 A 
2 foo 1 B 
3 bar 1 A 
0 foo 1 A 
1 bar 0 B 
2 foo 1 A 
3 bar 0 B 

In [4]: df.drop_duplicates(keep=False) 
Out[4]: 
    A B C 
0 foo 0 A 
2 foo 1 B 
3 bar 1 A 
2

あなたは、あなたがそれらのすべての重複行を削除するdrop_duplicates続く、2つのデータフレームの行方向を連結するpandas.concatを使用することができます

import numpy as np 
import pandas as pd 

df1 = pd.DataFrame(np.random.randn(5, 2), index= ['row' + str(i) for i in range(1, 6)]) 
df1 

     0    1 
row1 0.249451 -0.107651 
row2 1.295390 -1.773707 
row3 -0.893647 -0.683306 
row4 -1.090551 0.016833 
row5 0.864612 0.369138 

df2 = pd.DataFrame(np.random.randn(2, 2), index= ['row' + str(i) for i in [2, 5]]) 
df2 

     0   1 
row2 0.549396 -0.675574 
row5 1.348785 0.942216 

df1.loc[df1.index.difference(df2.index), ] 

     0   1 
row1 0.249451 -0.107651 
row3 -0.893647 -0.683306 
row4 -1.090551 0.016833 
+0

これは2つのデータフレームの内容を比較しないことに注意してください。単純にインデックスの値を比較します。 – prooffreader

関連する問題