Если вы не возражаете массировать DataFrame после прочтения Excel, вы можете попробовать два следующих способа:
>>> pd.read_excel("/tmp/sample.xlsx", usecols = "B:F", skiprows=[0])
header1 Unnamed: 1 Unnamed: 2 header2 Unnamed: 4
0 col1 col2 col3 col4 col5
1 a 0 x 3 d
2 b 1 y 4 e
3 c 2 z 5 f
В приведенном выше примере вам придется исправить первый уровень MultiIndex, начиная с header1и header2 - это объединенные ячейки
>>> pd.read_excel("/tmp/sample.xlsx", header=[0,1], usecols = "B:F",
skiprows=[0])
header1 header2
header1 col1 col2 col3 col4
a 0 x 3 d
b 1 y 4 e
c 2 z 5 f
. В приведенном выше примере это довольно близко, пропустив пустую строку и проанализировав только столбцы (B: F) с данными.Если вы заметили, столбцы сместились, хотя ...
Примечание Не чистое решение, а просто хотел поделиться с вами образцами в сообщении, а не в комментарии
- Редактировать на основе обсуждения с OP -
На основании документации для панд read_excel , header[1,2]
создает мультииндекс для ваших столбцов.Похоже, он определяет метки для DataFrame
в зависимости от того, что заполнено в столбце A. Так как там ничего нет ... в индексе есть набор Nan
, например,
>>> pd.read_excel("/tmp/sample.xlsx", header=[1,2])
header1 header2
col1 col2 col3 col4 col5
NaN a 0 x 3 d
NaN b 1 y 4 e
NaN c 2 z 5 f
Опять же, если вывсе в порядке с очисткой столбцов, и если первый столбец xlsx всегда пуст ... вы можете удалить его, как показано ниже.Надеюсь, это то, что вы ищете.
>>> pd.read_excel("/tmp/sample.xlsx", header[1,2]).reset_index().drop(['index'], level=0, axis=1)
header1 header2
col1 col2 col3 col4 col5
0 a 0 x 3 d
1 b 1 y 4 e
2 c 2 z 5 f