Pandas установка ограниченного подмножества - PullRequest
2 голосов
/ 10 июля 2020

Я хочу установить первые N строк кадра данных pandas, которые удовлетворяют условию. Например, для:

data = {'id':[1,1,2,2,2,4,2,2], 'val':[9,9,9,9,9,9,9,9]}
df = pd.DataFrame(data)

Если я это сделаю:

df.loc[df.id == 2] = None

Я установил все строки с помощью id == 2, но я хочу установить только N из них.

Я пробовал

df.loc[df.id == 2][range(N)] = None

, но безуспешно.

Есть ли способ сделать это без использования циклов?

1 Ответ

1 голос
/ 10 июля 2020

IIU C, используйте pandas.DataFrame.loc дважды. Не очень красиво, но работает:

df.loc[df.loc[df["id"].eq(2)].index[:2]]=None
print(df)

Вывод:

    id  val
0  1.0  9.0
1  1.0  9.0
2  NaN  NaN
3  NaN  NaN
4  2.0  9.0
5  4.0  9.0
6  2.0  9.0
7  2.0  9.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...