Как установить значение кадра данных панды между двумя индексами? - PullRequest
0 голосов
/ 23 сентября 2018

Я хотел бы установить значение для фрейма данных panda на основе значений другого столбца.В двух словах, например, если бы я хотел установить индексы для столбца my_column кадра данных pandas pd, где другой столбец, my_interesting_column находится между 10 и 30, я хотел бы сделать что-то вроде:

start_index=pd.find_closest_index_where_pd["my_interesting_column"].is_closest_to(10)
end_index=pd.find_closest_index_where_pd["my_interesting_column"].is_closest_to(30)
pd["my_column"].between(star_index, end_index)= some_value

В качестве простой иллюстрации предположим, что у меня есть следующий фрейм данных

df = pd.DataFrame(np.arange(10, 20), columns=list('A'))
df["B"]=np.nan
>>> df
    A   B
0  10 NaN
1  11 NaN
2  12 NaN
3  13 NaN
4  14 NaN
5  15 NaN
6  16 NaN
7  17 NaN
8  18 NaN
9  19 NaN

Как мне сделать что-то вроде

df.where(df["A"].is_between(13,16))= 5

Чтобы конечные результаты выглядели как

>>> df
    A   B
0  10 NaN
1  11 NaN
2  12 NaN
3  13 5
4  14 5
5  15 5
6  16 5
7  17 NaN
8  18 NaN
9  19 NaN

1 Ответ

0 голосов
/ 23 сентября 2018
pd.loc[start_idx:end_idx, 'my_column'] = some_value

Я думаю, это то, что вы ищете

df.loc[(df['A'] >= 13) & (df['A'] <= 16), 'B'] = 5 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...