【发布时间】:2019-04-15 13:12:38
【问题描述】:
我有两个具有相同索引和列的数据框:
In: import pandas as pd
import numpy as np
import random
df1 = pd.DataFrame({'A' : [ random.random(), random.random(), random.random()],
'B' : [ random.random(), random.random(), random.random()],
'C' : [ random.random(), random.random(), random.random()]})
df2 = pd.DataFrame({'A' : [random.randint(0,10), random.randint(0,10), random.randint(0,10)],
'B' : [random.randint(0,10), random.randint(0,10), random.randint(0,10)],
'C' : [random.randint(0,10), random.randint(0,10), random.randint(0,10)]})
df1
Out:
A B C
0 0.424566 0.054485 0.830993
1 0.673692 0.754941 0.621544
2 0.890594 0.805776 0.878123
In: df2
Out:
A B C
0 9 9 3
1 4 6 6
2 10 2 9
我想根据df2 中的对应值从df1 中选择值并将其作为数组返回。
例如在上面的示例中按值6 选择将返回[0.754941, 0.621544]
我查看了mask,但看不到如何将掩码从一个 df 应用到第二个 df。
【问题讨论】:
-
df1[df2==6]怎么样? -
使用
df1.values[df2.eq(6)]得到你想要的数组。
标签: python pandas selection mask