Я создал 2 кадра данных с общим индексом на основе года и района. В каждом кадре данных 58 строк, и год и район являются точными совпадениями. Тем не менее, когда я пытаюсь присоединиться к ним, я получаю новый фрейм данных со всеми объединенными столбцами (что я и хочу), но только одну строку - Нью-Йорк. Эта строка существует в обоих фреймах данных, как и все остальные, но только эта попадает в объединенный DF. Я пробовал несколько разных способов объединения фреймов данных, но все они делают то же самое. Этот пример использует:
pd.concat([ groupeddf,Popdf], axis=1)
Это Popdf
с индексом (год, район):
Population
Year District
2017 Albany 309612
Allegany 46894
Broome 193639
Cattaraugus 77348
Cayuga 77603
Это groupeddf
, индексированный по Году и Району (некоторые столбцы для ясности исключены):
Total SNAP Households Total SNAP Persons \
Year District
2017 Albany 223057 416302
Allegany 36935 69802
Broome 201586 363504
Cattaraugus 75567 144572
Cayuga 64168 121988
Это объединенный DF после выполнения pd.concat([ groupeddf,Popdf], axis=1)
:
Population Total SNAP Households Total SNAP Persons
Year District
2017 New York City 8622698 11314598 19987958
Показывает, что объединенный фрейм данных имеет только 1 запись:
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 1 entries, (2017, New York City) to (2017, New York City)
Data columns (total 4 columns):
Population 1 non-null int64
Total SNAP Households 1 non-null int64
Total SNAP Persons 1 non-null int64
Total SNAP Benefits 1 non-null float64
dtypes: float64(1), int64(3)
memory usage: 170.0+ bytes
ОБНОВЛЕНИЕ: я попробовал другой подход, и он показывает, что индексы, которые кажутся мне идентичными, не рассматриваются как идентичные.
Когда я выполняю этот код, я получаю дубликаты вместо слияния:
combined_df = groupeddf.merge(Popdf, how='outer', left_index=True, right_index=True)
Результаты выглядят так:
Year District
2017 Albany 223057.0 416302.0
Albany NaN NaN
Allegany 36935.0 69802.0
Allegany NaN NaN
Broome 201586.0 363504.0
Broome NaN NaN
Cattaraugus 75567.0 144572.0
Cattaraugus NaN NaN
Единственное исключение - когда вы спускаетесь в Нью-Йорк. Это не дублирует, так что на самом деле рассматривается как тот же индекс. Так что с данными что-то не так, но я не уверен, что именно.