【发布时间】:2017-08-04 21:36:31
【问题描述】:
我正在尝试根据记录的索引值是否在另一个数据框中的两列定义的范围内来填充数据框中的列。
df1 看起来像:
a
0 4
1 45
2 7
3 5
4 48
5 44
6 22
7 89
8 45
9 44
10 23
而 df2 是:
START STOP CLASS
0 2 3 1
1 5 7 2
2 8 8 3
我想要的样子:
a CLASS
0 4 nan
1 45 nan
2 7 1
3 5 1
4 48 nan
5 44 2
6 22 2
7 89 2
8 45 3
9 44 nan
10 23 nan
df2 中的 START 列是范围的最小值,STOP 列是最大值。
【问题讨论】:
-
欢迎来到 Stackoverflow。到目前为止,您尝试过什么?
-
44怎么会有2的类值呢?它不在任何区间内?
-
groupby和reset_index用于 df2,然后是merge -
CLASS 基于索引位置,而不是 a 列中的值。 a 列中的值 44 位于索引位置 5,属于 CLASS 2。