python - 使用来自第二个数据帧的值从一个数据帧中进行选择
问题描述
我有两个具有相同索引和列的数据框:
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
df1
我想根据相应的值从中选择值df2
并将其作为数组返回。
例如,按上面示例中的值选择6
将返回[0.754941, 0.621544]
我看过mask
但看不到如何将掩码从一个 df 应用到第二个 df。
解决方案
如果两个 DataFrmes 中的索引和列相同,则可以使用带有掩码的索引,来自df2
with 2d array
created by to_numpy
or values
:
#pandas 0.24+
a = df1.to_numpy()[df2 == 6]
#oldier pandas versions
#a = df1.values[df2 == 6]
print (a)
[0.754941 0.621544]
推荐阅读
- javascript - 在 javascript/jquery 中增加日期时间
- swift - 如何使用 Swift 调用字段 Firebase 中的字段可以 DB
- r - R中的词形还原语料库
- python - 如何使用标签编码将pandas DataFrame中的多列转换为一列
- javascript - javascript 对象中的 this 上下文与 Scope 和上下文
- java - java中的Scanner类在输入整数和多行字符串时的问题
- flutter - 在我的颤振项目中使用刷新指示器无法重新加载页面
- angular - 无法更新 ag-grid 角度中的行数据
- c++ - Arduino 中的 JSON 格式
- git - “git push origin master”和“git push -u origin --all”之间的区别?