Как лучше всего объединить / объединить два кадра данных панд в столбце (pandas.core.series.Series и pandas.core.frame.DataFrame) - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь объединить / объединить два кадра данных (df_apply и df_result) на основе общего столбца (name). Звучит достаточно просто, но один из фреймов данных имеет типы столбцов pandas.core.series.Series, а другой - типы столбцов pandas.core.frame.Dataframe. Это приводит к слиянию (pd.merge(df_apply, df_result, on='name'), что приводит к ошибке:

ValueError: The column label 'name' is not unique. For a multi-index, the label must be a tuple with elements corresponding to each level.

После удаления индексов обеих таблиц я смог объединить (df_apply.join(df_result)) таблиц, но это приводит к кадру данных со странными именами столбцов, которые в любом случае недоступны - имена столбцов становиться (sbt,) (гра,) (банк,) (они,) (wwh,) (класс_макс.) (prob_max,) (tf_time,) (имя,) (processing_time,).

Я пытался преобразовать pandas.core.series.Series в pandas.core.frame.Dataframe примерно так:

  • df_apply.name = df_apply.name.rename(None).to_frame()
  • df_apply.name = df_apply.name.to_frame()

но в итоге результат type(df_apply.name) всегда равен: pandas.core.series.Series, а результат type(df_result.name) всегда равен pandas.core.frame.DataFrame.

Два кадра данных (по одной строке каждого) выглядят так:

df_result: df_apply

df_apply: df_result Я ожидаю, что смогу легко присоединиться к этим таблицам, основываясь на названии, но эти противные структуры типа столбцов панд делают это очень трудным Как можно это сделать?

UPDATE:

Я решил проблему, экспортировав df_result в csv и импортировав его снова. На данный момент оба столбца имеют типы столбцов pandas.core.series.Series. Я надеюсь, что это поможет, но все еще не отвечает на мой вопрос о том, как присоединиться к таким таблицам без этого ...?

...