2017-01-18 4 views
0

У меня есть два Python панды DataFrames:Python Панды Merge не будет работать

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.HardwareAddress Появляется в Data.HardwareAddress.

Я пробовал это, но он не объединяет данные. Я получаю имена столбцов из обоих DataFrames, но только содержимое Data включено.

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

Кроме того, я пытался листать заказ DataFrame:

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

я слитые имена столбцов, но теперь отображаются только данные Inventory_Info.

Я попытался использовать этот синтаксис слияния:

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 каждый показал, что HardwareAddress был тип object. Я использовал Data['HardwareAddress'].astype(int) и Inventory_Info['HardwareAddress'].astype(int), а затем DataFrames объединился точно так, как ожидалось.

 Смежные вопросы

  • Нет связанных вопросов^_^