2017-02-05 8 views
2

У меня есть два dataframes с тем же dtypes:Панда ошибка при добавлении dataframes: недопустимое определение DTYPE в get_concat_dtype

>>> df1.dtypes 
Out[3]: 

GUID    object 
RID    int64 
SID    int64 
Threshold  float64 
Average   float64 
dtype: object 

>>> df2.dtypes 
Out[4]: 

GUID   object 
RID    int64 
SID    int64 
Threshold  float64 
Average  float64 
dtype: object 

При запуске df1.append(df2) или pd.concat([df1,df2])

Я получаю следующее сообщение об ошибке:

in get_empty_dtype_and_na 
    raise AssertionError("invalid dtype determination in get_concat_dtype") 

An Я понимаю, что мне не хватает?

+0

Проверьте это: http://stackoverflow.com/questions/32488417/solution-for-assertionerror-invalid-dtype-determination-in-get-concat-dtype-whe – MYGz

+0

У меня нет оснований думать, что имеют двойные имена столбцов (см. dtypes), а также нет df empty – Mugen

ответ

1

Проблема была мультииндексных

Использование droplevel исправили проблему.

Очень запутанное сообщение об ошибке.

df1.columns.droplevel(1) 
df1.append(df2) 
+0

Не могли бы вы дать свое решение? Я подозреваю, что у меня что-то похожее: некоторые из моих данных имеют столбцы, которые являются MultiIndex, а другие - индексом. Тем не менее, при попытке использовать капли, я получаю либо «Должен пройти ненулевое число уровней/меток», либо «Слишком много уровней: индекс имеет только 1 уровень, а не 2». – bli

+0

@bli его возможно, что ваши столбцы имеют всевозможные уровни, они не обязательно в одинаковых размерах. когда вы печатаете 'df.dtypes', вы можете видеть глубину уровня по отстукам. если вы посмотрите на мой вопрос, вы увидите, что 'df1' имеет один уровень глубины больше, чем' df2', но также могло быть, что только некоторые столбцы имели более глубокие уровни – Mugen

+0

. Моя проблема была действительно иной: https: // stackoverflow.com/q/48345640/1878788 – bli