2016-04-22 19 views
1

2つのExcelファイルがあり、どちらも従業員情報が含まれています。 File1は195K行、File2は100より小さい。File2のid#があるFile1の行全体を返す必要があります。私はPHPのような何かをしたが、python/pandasでそれを並べ替えることはできません。pandas:pandasの2つのExcelファイルを比較し、1つの列の値が他の列にある戻り行

私はisin()メソッドを使って行の選択を調べています。

df0 = pd.ExcelFile('File1.xlsx').parse('Sheet1') 
df1 = pd.ExcelFile('Fil2.xlsx').parse('Sheet1') 

print df0[df1['staffid'].isin(df0['staffid'])] 

結果が「IndexingError:提供Unalignableブールシリーズキー」である

ですが、このための適切なツールをパンダ、または私はopenpyxlまたは何か他のものを見なければなりませんか?

+0

これはVBAを介して行うことができます。データがどのように見えるかを知る必要があります。 – findwindow

答えて

1

あなたの列の順序は、それがあるべき、間違っている:

df0[df0['staffid'].isin(df1['staffid'])] 

df1長さはあなたが存在しているdf0でstaffid値を見つけたいdf0

と同じではありませんので、エラーがありますdf1他の方法ではありません

+0

ああ私はFile1(df0)から行を返すので、私はdf1のdf0にある値を探したいと考えました。それが起こるよう 、私が取得: 「空のデータフレーム 列を:[FIRSTNAME、middleInitial、姓、staffid、等...] インデックス:[]」 は2つのデータフレームの間でのデータ型に問題がある可能性があり? – mattrweaver

+0

必要に応じて、df0.info()とdf1.info()の出力を確認し、astype(int) – EdChum

+0

を使用して型をキャストします。ありがとう! – mattrweaver

関連する問題