Как извлечь каждую n-ую строку из фрейма данных? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть df:

, которая выглядит следующим образом (пропуская несколько строк):

       id    
201    1
202    2
203    3
301    4
303    5
401    6

Я хочу выбрать только каждый индекс, который x01st означает, что нужны строкиэто 201, 301, 401, 501 для всего кадра данных.

Я пробовал это:

if df.index % 100 = 1:
    not sure what to do

1 Ответ

0 голосов
/ 09 февраля 2019

Вы близки, нужно по умолчанию RangeIndex сравнить по 1:

df1 = [df.index % 100 == 1]

Решение с общим индексом:

df1 = [np.arange(len(df)) % 100 == 1]

Если хотите, также опустите 1. и101. строк:

df2 = (df[(df.index % 100 == 1) & (df.index > 200)]

И:

a = np.arange(len(df))
df2 = df[(a % 100 == 1) & (a > 200)]

Образец :

np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(1000,3)), columns=list('ABC'))
#print (df)

a = np.arange(len(df))
df2 = df[(a % 100 == 1) & (a > 200)]
print (df2)
     A  B  C
201  4  4  4
301  1  3  2
401  0  3  5
501  5  8  4
601  3  7  9
701  5  5  7
801  4  1  0
901  4  7  6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...