Индекс панд, если заявление - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь создать новый столбец из 1, если индекс больше x в кадре данных pandas.

Но этот код не работает.У кого-нибудь есть идеи?

if df.index>=3:
    df['Step1']=1
else:
    df['Step1']=0

1 Ответ

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

давайте рассмотрим пример dataframe, как показано ниже

df  = pd.DataFrame({"a":[1,2,3,4,5],"b":[2,4,9,16,25]})

, индексный метод печатает, как показано ниже

In [4]: df.index
Out[4]: RangeIndex(start=0, stop=5, step=1)

и df.index >3, печатает, как показано ниже

In [5]: df.index>3
Out[5]: array([False, False, False, False,  True])

Итак, ответ:

y = df.index>3
df['new_column'] = y.astype(int)
df
   a   b  new_column
0  1   2    0
1  2   4    0
2  3   9    0
3  4  16    0
4  5  25    1

Редактировать: если вы хотите использовать от 3 до 9 индексов, вы делаете следующее

import numpy as np
np.logical_and(df.index>2, df.index<5)
array([False, False, False,  True,  True])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...