説明できないpd.mergeを使用して2つの異なるマージ動作が得られています。誰かが手を貸すことができると思っています。Pandas pd.mergeは実際の値ではなくNaNになります
例1
は手動でデータフレームを作成するには、右のマージ動作が発生します。すなわち、Seller列が正しい値を持っていること。
df1 = DataFrame([[1,'Dude','2016-03-07 16:21', '1e2345a6-ae7e-89e0-123d-b4567fcc8fb9']],columns=['ID','Name','Created at', 'Unit'])
df2 = DataFrame([['SellTEST','1e2345a6-ae7e-89e0-123d-b4567fcc8fb9']], columns=['Seller', 'Unit'])
merge_df = pd.merge(df1, df2, on=['Unit'],how='left')
print (merge_df)
結果:
ID Name Created at Unit Seller
0 1 Dude 2016-03-07 16:21 1e2345a6-ae7e-89e0-123d-b4567fcc8fb9 SellTEST
私は.CSVファイルから同じデータを読み込む場合は、私は、マージで誤った結果を受け取ります。出品者の欄には、今のNaNが含まれています
例二
ticketdata = r'tickets3.csv'
userdata = r'users3.csv'
df1 = pd.read_csv(ticketdata)
df2 = pd.read_csv(userdata)
merge_df = pd.merge(df1, df2, on=['Unit'],how='left')
print (merge_df)
結果:
ID Name Created at Unit Seller
0 1 Dude 2016-03-07 16:21 1e2345a6-ae7e-89e0-123d-b4567fcc8fb9 NaN
私はdtypesは、両方のデータセットと同じであることを確認しました。すべてがint64というIDを除いてObjectです。
私には何が欠けていますか?
'read_csv'の後に' df1'と 'df2'のデータを追加できますか? –