Удалить индекс столбца из кадра данных - PullRequest
0 голосов
/ 02 июля 2018

Я извлек несколько фреймов данных из листа Excel, передавая кординаты (начало и конец) Теперь я использовал приведенную ниже функцию для извлечения в соответствии с кординатами, но когда я пытаюсь преобразовать его в датафрейм, не знаю, откуда в df столбцы индекса Я хотел удалить эти индексы и сделать 2-ю строку столбцами, это мой фрейм данных

         0     1     2    3     4    5     6
  Cols/Rows    A    A2    B    B2    C    C2
0         A   50    50   150    150  200   200
1         B  200    200  250    300  300   300
2         C  350    500  400    400  450   450

def extract_dataframes(sheet):                         
    ws = sheet['pivots']
    cordinates = [('A1', 'M8'), ('A10', 'Q17'), ('A19', 'M34'), ('A36', 'Q51')]
    multi_dfs_list = []
    for i in cordinates:
        data_rows = []
        for row in ws[i[0]:i[1]]:
            data_cols = []
            for cell in row:
                data_cols.append(cell.value)
            data_rows.append(data_cols)
        multi_dfs_list.append(data_rows)
    multi_dfs = {i: pd.DataFrame(df) for i, df in enumerate(multi_dfs_list)}
    return multi_dfs

Я пытался удалить индекс, но не работает. Примечание: когда я говорю

>>> multi_dfs[0].columns # first dataframe
RangeIndex(start=0, stop=13, step=1)

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Изменение

multi_dfs = {i: pd.DataFrame(df) for i, df in enumerate(multi_dfs_list)}

для

multi_dfs = {i: pd.DataFrame(df[1:], columns=df[0]) for i, df in enumerate(multi_dfs_list)}

Из Документов ,

столбцы: индекс или массив Метки столбцов для использования в результирующем кадре. По умолчанию будет RangeIndex (0, 1, 2,…, n), если не предоставлены метки столбцов

0 голосов
/ 02 июля 2018

Я думаю, что нужно:

df = pd.read_excel(file, skiprows=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...