Для каждого набора строк Y скопируйте первые n строк из кадра данных с X строками (где X - кратное Y) - PullRequest
0 голосов
/ 30 января 2020

Допустим, есть некоторый фрейм данных с X строками (например, 25). Как бы я go о копировании первых 3 строк (например, индекс 0, 1, 2) и исключении следующих 2 (например, индекс 3, 4), а затем повторять это каждые 5 строк (включая индекс 5, 6, 7 ; исключить 8, 9; ...)?

Ответы [ 2 ]

1 голос
/ 30 января 2020

Сначала составьте список нужных вам индексов строк, затем передайте их df.iloc:

include = 3
for_each = 5

indices = [index for i in range(0, len(df), for_each) for index in range(i, i+include)]
df.iloc[indices]
0 голосов
/ 30 января 2020

Используйте деление остатка для подстановки строк индекса.

df = pd.DataFrame(range(15))

N = 5     # Sets of this many rows
keep = 3  # Keep this many in each N

m = (df.reset_index().index%N) < keep
       # reset incase not RangeIndex

df[m]
#     0
#0    0
#1    1
#2    2
#5    5
#6    6
#7    7
#10  10
#11  11
#12  12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...