根据另一个数据框

时间:2017-02-03 16:25:50

标签: python pandas

我有两个这样的数据框:

      point    sector 
1        1          4
2        2          5
3        3          2
4        4          1
5        5          5
6        6          1
7        7          4
8        8          3
10      10          5
11      11          2
12      12          1
13      13          3
14      14          1
15      15          4
16      16          3
17      17          2
18      18          1
19      19          1
20      20          1
21   alt 1          2
22   alt 3          3
23   alt 2          5

另一个像这样,其中的条目对应于我希望该点来自的扇区。

p1  p2  p3  p4          
1   2   3   4
1   2   3   5
1   2   4   5
1   3   4   5
2   3   4   5

我想要做的是创建另一个数据框,它将根据扇区从第一个数据框中随机选择一组点。

例如:

        p1 p2 p3 p4
lane 1: 12 3  8  7 

正如您所看到的,第1道的数字都包含第2个数据帧第1行的扇区。我一直在尝试使用df.loc,但想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:0)

对于每一行,从第一个数据帧中获取数据并随机选择它:

df2.apply(lambda r: df.loc[r].groupby(level=0).point.apply(np.random.choice).values, axis=1)
Out[132]: 
      p1     p2     p3     p4
0      4     11  alt 3      1
1      6     11     13  alt 2
2      4     17      7  alt 2
3     19  alt 3     15      5
4  alt 1     13      7     10