如何在两个索引之间设置熊猫数据框的值?

时间:2018-09-23 11:34:57

标签: python pandas

我想根据另一列的值为熊猫数据框设置一个值。简而言之,例如,如果我想设置熊猫数据框my_column的列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 :(得分:0)

pd.loc[start_idx:end_idx, 'my_column'] = some_value

我认为这就是您要寻找的

df.loc[(df['A'] >= 13) & (df['A'] <= 16), 'B'] = 5