0
私の投稿を読む時間をとってくれてありがとう。パンダのデータフレームをマージすると一部のデータが複製される
私はPython pandasを使用しており、多数のCSVファイルとTSVファイルの情報をマージしています。 2番目のマージを実行すると、結果のデータフレームにデータが複製されます。私は、マージコールで何か基本的なものを見逃していると思っていますが、私はそれを理解することができませんでした。
コード:予想通り
from pandas import DataFrame, read_csv
import matplotlib.pyplot as plt
import pandas as pd
import sys
import matplotlib
# Enable inline plotting
%matplotlib inline
# read data into dataframes
ticketdata = r'/pathto.csv'
ticketdata = r'/pathto.csv'
userdata = r'/pathto.csv'
shipmentdata = r'/pathto.tsv'
tickets_df = pd.read_csv((ticketdata), usecols=['Id',"Requester",'Created at',"Requester email",
"Requester external id"])
users_df = pd.read_csv((userdata), usecols=['External ID','Printers',"Organization Title"])
shipment_df = pd.read_csv((shipmentdata), delimiter='\t', usecols=['Cust','Printer ID'])
# Clean up tickets_df & shipment_df
# Change "Requester external id" to "External ID" to support the merge
tickets_df.columns = ['Ticket Id',"Requester","External ID","Requester email",'Created at']
shipment_df.columns = ['VAR','Printers']
# Change column order for the sake of readability
tickets_df = tickets_df[['Ticket Id','Requester','Created at',"Requester email","External ID"]]
# Replace NaN in External ID with 0 and merge data
tickets_df.fillna(0, inplace=True)
merge1_df = pd.merge(tickets_df, users_df, on=['External ID'], how='left')
merge1_df = merge1_df[['Ticket Id','Created at',"Organization Title",'Requester',"Requester email","External ID",'Printers']]
merge2_df = pd.merge(merge1_df, shipment_df, on=['Printers'], how='left')
merge1_dfは(NaNでは、いくつかの値が期待されている)になります。
Ticket Id Created at Organization Title Requester Requester email External ID Printers
0 1 2014-08-21 18:19 NaN dude [email protected] 0 NaN
1 1 2014-08-21 18:19 NaN dude [email protected] 0 NaN
2 1 2014-08-21 18:19 NaN dude [email protected] 0 NaN
3 1 2014-08-21 18:19 NaN dude [email protected] 0 NaN
任意のアイデア(S:
Ticket Id Created at Organization Title Requester Requester email External ID Printers
0 1 2014-08-21 18:19 NaN dude [email protected] 0 NaN
1 2 2014-09-09 12:04 NaN dude1 [email protected] 0 NaN
2 3 2014-09-09 12:04 NaN dude2 [email protected] 0 NaN
3 4 2014-09-09 12:04 NaN dude3 [email protected] 0 NaN
merge2_dfはdupesの何千ものが含まれています)私はどのようにmerge2_dfを台無しにしていますか?
を解決した追加しました。しかし、重複したポスト・マージがある場合は、重複したキーが事前にマージされている可能性があります。 – JohnE