У меня есть фрейм данных, содержащий 4 столбца, первые 3 столбца представляют собой числовые переменные, которые указывают на особенность переменной в последнем столбце, а последний столбец - это строки.
Я хочу объединить последний строковый столбец с предыдущими 3 столбцами с помощью функции groupby. Тогда это работает (я имею в виду, что строка, которая имеет ту же функцию, записанную в первых трех столбцах, была успешно объединена)
Ранее длина фрейма данных составляла 1200, а длина объединенного фрейма данных - 1100. Я обнаружил, что более поздний df является мультииндексированным. Которые содержат только 2 столбца. (Иерархический индекс) Таким образом, я попробовал метод переиндексации с помощью сгенерированного возрастающего числового списка. К сожалению, я потерпел неудачу.
df1.columns
*[Out]Index(['time', 'column','author', 'text'], dtype='object')
series = df1.groupby(['time', 'column','author'])
['body_text'].sum()#merge the last column by the first 3 columns
dfx = series.to_frame()# get the new df
dfx.columns
*[Out]Index(['author', 'text'], dtype='object')
len(dfx)
*[Out]1100
indexs = list(range(1100))
dfx.reindex(index = indexs)
*[Out]Exception: cannot handle a non-unique multi-index!