2017-01-18 12 views
0

I持つ二つのPythonパンダデータフレーム:Pythonのパンダマージは動作しません

Inventory_Info(20行):

Group, Facility, Unit, Room, HardwareAddress 
'Generic Hospital Group', 'Generic Hospital', 'Generic Hospital Ward', 'Generic Hospital Room', 5715 

Data(47行):

Serial_Number, Last_Server_Check, Num_Check_Ins, HardwareAddress 
00BA0F42, 23, 1/18/17 20:38, 3906 

すべての20個の値Inventory_Info.HardwareAddressData.HardwareAddressに表示されます。

これを試しましたが、データをマージしません。両方のDataFramesから列名を取得しますが、内容はDataのみです。

finalDataSet = pandas.DataFrame.merge(Inventory_Info, Data, how='left', on='HardwareAddress') 

は私がマージされた列名を取得しますが、今だけ Inventory_Infoデータが表示されます。

finalDataSet = pandas.DataFrame.merge(Data, Inventory_Info, how='left', on='HardwareAddress') 

同様に、私は、データフレームの順序を反転しようとしました。私はこのマージの構文を使用してみました

finalDataSet = webData.merge(rawData, left_index='HardwareAddress', right_on='HardwareAddress') 

この構文が正しい形式にデータを取得し、すべての列を移入している間は、データがHardwareAddressインデックスに一致しないとその配置が間違っています。

+0

まず、各DataFrameの先頭を送信する必要があります。次に、別名pandasを 'pd'とします。最後に、pandas.DataFrame.mergeは使用しないでください。 'pd.merge'を使います。 –

+0

今私はpd.mergeを試して、pd.DataFrame.mergeと同じ結果を得ました。 – OnlyDean

+2

あなたの質問を編集し、 'print(Data.head())'と 'print(Inventory_Info.head()) 'の結果を貼り付けてください –

答えて

1

私はついにこれを解決しました。

Inventory_Info.dtypesおよびData.dtypesはそれぞれがタイプobjectであることを明らかにした。 Data['HardwareAddress'].astype(int)Inventory_Info['HardwareAddress'].astype(int)を使用し、DataFramesが期待どおりに正確にマージされました。

関連する問題