Получить все данные, основанные на определенном значении в столбце данных - PullRequest
0 голосов
/ 06 сентября 2018

у меня DataFrame выглядит примерно так:

       import numpy as np
       import pandas as pd

       df=pd.DataFrame([['d',5,6],['a',6,6],['index',5,8],['b',3,1],['b',5,6],['index',6,7],
            ['e',2,3],['c',5,6],['index',5,8]],columns=['A','B','C'])

Я хочу выделить все строки, которые находятся между index и создать много фреймов данных

Я хочу получить все как:

dataframe1:

         A  B   C
 1       a  6   6
 2   index  5   8
 3      3   b   3   

датафрейм 2

                A   B   C
         4      b   5   6
         5  index   6   7
         6      c   2   3

datframe3:

                   A   B    C
              7    c    5   6
              8 index   5   8
              9    4    3   1

dataframe4:

                            A  B   C

                     11    5    2   3
                     12 index   4   2
                     13   1     2   5

1 Ответ

0 голосов
/ 07 сентября 2018
index_list = df.index[df['A'] == 'index'].tolist() # create a list of the index where df['A']=='index'
new_df = [] # empty list for dataframes
for i in index_list: # for loop
    try:
        new_df.append(df.iloc[i-1:i+2])
    except:
        pass

это создает список фреймов данных, которые вы можете вызывать по new_df[0] new_df[1] или использовать цикл для их вывода:

for i in range(len(new_df)):
    print(f'{new_df[i]}\n')

       A  B  C
1      a  6  6
2  index  5  8
3      b  3  1

       A  B  C
4      b  5  6
5  index  6  7
6      e  2  3

       A  B  C
7      c  5  6
8  index  5  8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...