Я довольно новичок в python и pandas, и я пытаюсь преобразовать некоторые данные. У меня есть набор данных с тремя столбцами, как показано ниже:
A B C
col1 21-03-2019 1.2
col2 21-03-2019 23
col3 21-03-2019 45
col4 21-03-2019 2.4
col5 21-03-2019 78
col1 14-07-2019 0.1
col2 14-07-2019 AM
col3 14-07-2019 CDM
col4 14-07-2019 66
col5 14-07-2019 0.1
Я пытаюсь повернуть кадр данных, используя B в качестве индекса, и сводная таблица работает нормально.
import pandas as pd
# creating a dataframe
df = pd.DataFrame({'A': ['col1', 'col2', 'col3', 'col4', 'col5', 'col1', 'col2', 'col3' ,'col4', 'col5'],
'B': [21-03-2019,21-03-2019,21-03-2019,21-03-2019,21-03-2019, 14-07-2019,14-07-2019,14-07-2019,14-07-2019,14-07-2019],
'C': [1.2, 23, 45, 2.4, 78, 0.1, 'AM', 'CDM', 66, 0.1]})
df.pivot(index='B', columns='A', values='C')
A col1 col2 col3 col4 col5
B
21-03-2019 1.2 23 45 2.4 78
14-07-2019 0.1 AM CDM 66 0.1
Но в моем фрейме данных есть ситуации, когда столбец B одинаков для всех записей, как показано ниже:
A B C
col1 21-03-2019 1.2
col2 21-03-2019 23
col3 21-03-2019 45
col4 21-03-2019 2.4
col5 21-03-2019 78
col1 21-03-2019 0.1
col2 21-03-2019 AM
col3 21-03-2019 CDM
col4 21-03-2019 66
col5 21-03-2019 0.1
В этом случае сводка завершается с ошибкой ниже:
ValueError: Index contains duplicate entries, cannot reshape
Я попытался сбросить индекс (хотя я не знаю, что означает сброс индекса) df.pivot(index='B', columns='B', values='C').reset_index('B')
, но это все та же ошибка.
Мой ожидаемый результат:
A col1 col2 col3 col4 col5
B
21-03-2019 1.2 23 45 2.4 78
21-03-2019 0.1 AM CDM 66 0.1
Как я могу решить это? Может кто-нибудь, пожалуйста, помогите мне?