Как разделить кадр данных pandas по каждой строке и включить заголовок для каждого нового созданного кадра данных? - PullRequest
1 голос
/ 09 апреля 2019

новичок в Python.Как я могу разделить фрейм данных по каждой строке и создать новый фрейм данных, включая заголовок.

Моя конечная цель - использовать библиотеку docx, чтобы поместить таблицу данных (созданную из фрейма данных) в слово.

Пример того, как выглядит текущий фрейм данных:

x y z
1 4 5
4 2 4
3 5 5

Что я хотел бы создать:

x y z
1 4 5

x y z
4 2 4

Ответы [ 4 ]

3 голосов
/ 09 апреля 2019

Использование списка понимания с iloc

l = [df.iloc[[i], :] for i in range(len(df))]

print(l[0])

    x   y   z
0   1   4   5

Примечание. Поскольку мы создаем DataFrame из одной строки, df.iloc [i,:] возвращает серию, а df.iloc [[i],:] возвращает DataFrame.

1 голос
/ 09 апреля 2019

Создайте понимание списка, используя DataFrame.iterrows.Каждый элемент в списке представляет собой однорядный DataFrame, включая заголовки:

frame_list = [pd.DataFrame([x]) for i, x in df.iterrows()]

В качестве альтернативы можно использовать вхождение в диктовку, ключами которого являются индексы из исходного DataFrame:

frame_dict = {i:pd.DataFrame([x]) for i, x in df.iterrows()}
0 голосов
/ 09 апреля 2019

Вы можете сделать это, а затем записать данные в ваш docx.

   data = []
    for index, row in df.iterrows():
        data.append(df.columns.values)
        data.append(row.tolist())
0 голосов
/ 09 апреля 2019

Вы можете перебирать DataFrame следующим образом:

for idx, row in df.iterrows():
    _df = pd.DataFrame([row])
    # Add your processing here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...