我有两个这样的数据框:
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,但想知道是否有更好的方法?
答案 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