Отдельные столы в пандах - PullRequest
1 голос
/ 14 марта 2019

У меня есть файл Excel со сложенными таблицами, который в Pandas выглядит так:

d = {'col1': ['flow', 'A', 'B', 'C', 'handle', 'bs', 'cd', 'fg'],
'vals': [np.nan, 1, 2, np.nan, np.nan, 4, np.nan, 6]}
df = pd.DataFrame(d)

в строках суммы у нас есть определенное поле, похожее на заголовок маленькой таблицы (здесь flow и handle ).

Я хотел разделить заголовки и строки под ними в отдельных словарях. Моя идея состоит в том, чтобы создать столбец индекса с именем заголовков (поток и дескриптор), а затем использовать pd.groupby() для создания dict. (Предполагая, что я уже знаю header_name = [flow, handle] Каков наилучший способ достичь моей цели и получить данные в виде фрейма:

idx = ['flow', 'flow', 'flow', 'flow', 'handle', 'handle', 'handle', 'handle']
df.index = idx
df

1 Ответ

2 голосов
/ 14 марта 2019

IIUC, вы можете сделать что-то вроде:

header_name = ['flow', 'handle']
df.index=df.col1[df.col1.isin(header_name)].reindex(df.index).ffill()
print(df.rename_axis(None))

          col1  vals
flow      flow   NaN
flow         A   1.0
flow         B   2.0
flow         C   NaN
handle  handle   NaN
handle      bs   4.0
handle      cd   NaN
handle      fg   6.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...