Как выбрать несколько строк одновременно в пандах? - PullRequest
0 голосов
/ 22 октября 2018

Когда у меня есть объект DataFrame и неизвестное количество строк, я хочу каждый раз выбирать 5 строк.

Например, df имеет 11 строк, он будет выбран 3 раза, 5+5 + 1, и если в строке 4, будет выбран только один раз.

Как я могу написать код, используя pandas?

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Используйте groupby с небольшой арифметикой.Это должно быть чисто.

chunks = [g for _, g in df.groupby(df.index // 5)]

В зависимости от того, как вы хотите структурировать вывод, вы можете изменить g на g.values.tolist() (если вам нужен список вместо).

0 голосов
/ 22 октября 2018

numpy.split

np.split(df, np.arange(5, len(df), 5))

Демо

df = pd.DataFrame(dict(A=range(11)))

print(*np.split(df, np.arange(5, len(df), 5)), sep='\n\n')

   A
0  0
1  1
2  2
3  3
4  4

   A
5  5
6  6
7  7
8  8
9  9

     A
10  10
0 голосов
/ 22 октября 2018

Создайте цикл, а затем используйте индекс для индексации DataFrame:

for i in range(len(df), 5):
    data = df.iloc[i*5:(i+1)*5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...