объединение фреймов по мультииндексу pandas - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь объединить 2 набора данных с помощью мультииндекса, вот мой код

h_d = h_d.merge(t,
                how='left',
                on=[h_d.index.levels[0].name,h_d.index.levels[1].name])

о наборах данных:

  • 't' - это набор данных с двухуровневым индексом ( 'State', 'RegionName') и только один столбец (логический).
  • 'h_d' - это набор данных с абсолютно одинаковым индексом и 3 столбцами (float64).

Я уверен, что индексы такие же, потому что

t.index.levels[0].name == h_d.index.levels[0].name

и

t.index.levels[1].name == h_d.index.levels[1].name

оба return True, но после слияния я получаю KeyError: 'State'

1 Ответ

0 голосов
/ 10 июля 2020

Если вы ищете что-то подобное,

                bool,  float1,  float2, float3
'state'
'region name'

Тогда:

df = pd.concat([h.reset_index(drop=True),h_d.reset_index(drop=Tru‌​e)], axis=1)
...