0
私は、以下のように2つのデータフレームをパンダに持っています。 EmpIDは、両方のデータフレームの主キーです。完全アウタージョインを使用してパンダで2つのデータフレームに結合する
との観測がある場合は、私が存在する場合は、1つのデータフレームで- 欠落したデータを別のテーブルから値を充填することができるようにのEmpIDとこれら二つのデータフレームに参加したいとキーが一致
-
df_first = pd.DataFrame([[1, 'A',1000], [2, 'B',np.NaN],[3,np.NaN,3000],[4, 'D',8000],[5, 'E',6000]], columns=['EmpID', 'Name','Salary']) df_second = pd.DataFrame([[1, 'A','HR','Delhi'], [8, 'B','Admin','Mumbai'],[3,'C','Finance',np.NaN],[9, 'D','Ops','Banglore'],[5, 'E','Programming',np.NaN],[10, 'K','Analytics','Mumbai']], columns=['EmpID', 'Name','Department','Location'])
新しいキーは結果のデータフレームに追加する必要があります
これを達成するために以下のコードを使用しました。
merged_df = pd.merge(df_first,df_second,how='outer',on=['EmpID'])
しかし、このコードでは私が望ましくない重複する列が得られます。このため、両方のテーブルの一意の列をマージするためにのみ使用しました。
ColNames = list(df_second.columns.difference(df_first.columns))
ColNames.append('EmpID')
merged_df = pd.merge(df_first,df_second,how='outer',on=['EmpID'])
今、私は重複する列を得ることはありませんが、値を取得するのいずれかのキーが一致する所見ではありません。
誰かが私を助けることができたら本当に感謝します。
よろしく、 カイラスネギ
このソリューションは目的を果たしますが、列の順序を保持できるかどうかを確認したいだけです。最初に最初のデータフレームから2番目のデータフレームまでの列が必要です。また、外部結合を使用して実行できるかどうかも考えています。 –
わかっているのかわからないのはなぜですか?もっと説明できますか? – jezrael
私の実際のデータセットは約200列あり、特定の順序で設定されています。データセットは今度はこの順序でしか使用されていません。この操作を実行すると、このデータセットで作業している人は慣れていないソート順になります。だから私は列の順序を維持できる方法があれば考えていました。 –