Как разбить файл на неправильные части между начальным и конечным индексами? - PullRequest
1 голос
/ 14 марта 2020

Я хотел бы разбить файл на 3 файла поменьше. К сожалению, я не могу сделать это равными частями, потому что у меня не может быть одинаковых уникальных значений из столбца A в двух разных файлах. Вот почему я получаю конечные индексы в данном фрагменте файла следующим образом:

import pandas as pd
import numpy as np

df = pd.read_excel('ex_1.xls')

x = []
for id, df_i in  enumerate(np.array_split(df, 3)):

    df2 = df[df['A'] == df_i['A'][-1:].to_string(index=False).strip()][-1:]
    x.append(df2.index[0])

print(x) 

Example output x: 
[15, 67, 122]

Это означает, что первый файл должен содержать значения кадра данных от df между индексами 1 и 15, второй файл между 16 и 67, и третий файл между 68 и 122. Конечно, каждый файл должен иметь заголовки из основного df кадра данных. Как мне этого добиться?

1 Ответ

1 голос
/ 14 марта 2020

Я полагаю, что вы можете сначала добавить значение, затем zip с добавлением 1 для индексов и выбрать в DataFrame.loc:

x = [15, 67, 122]
y = np.insert(x, 0, 0)
print (y)
[  0  15  67 122]

dfs = [df.loc[s:e] for s, e in zip(y + 1, y[1:])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...