Pandas - 如何使用另一个 DF 的值从没有任何“键”的大 DF 中提取值?

旋风者

我有一个大矩阵作为熊猫 DF,没有任何“键”,但顶部有纯数字。一个较小的版本只是为了演示这里的问题,就像这个输入:

M=pd.DataFrame(np.random.rand(4,5))

我想要完成的是使用另一个给定的 DF 作为具有这样结构的参考

N=pd.DataFrame({'A':[2,2,2],'B':[2,3,4]})

...从大 DF 中提取值,而 'A' 的值对应于大 DF 的ROW编号和 'B' 值对应于大 DFCOLUMN编号,以便预期输出如下所示:

Large DF
          0         1         2         3         4
0  0.766275  0.910825  0.378541  0.775416  0.639854
1  0.505877  0.992284  0.720390  0.181921  0.501062
2  0.439243  0.416820  0.285719  0.100537  0.429576
3  0.243298  0.560427  0.162422  0.631224  0.033927

Small DF
   A  B
0  2  2
1  2  3
2  2  4

Expected Output:
   A  B extracted values 
0  2  2 0.285719
1  2  3 0.100537
2  2  4 0.429576

到目前为止,我已经尝试过类似这样的不同版本

N['extracted'] = M.iloc[N['A'].astype(int):,N['B'].astype(int)]

..但它一直失败并显示错误

TypeError: cannot do positional indexing on RangeIndex with these indexers
[0    2
 1    2
 2    2

哪种方法最好?通过将 DF 转换为 numpy 数组来完成这项工作是否更好?

感谢帮助!

罗格

我认为您想使用 apply 功能。这将逐行浏览您的数据集。

N['extracted'] = N.apply(lambda row: M.iloc[row['A'], row['B']], axis=1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从列表中提取值到Pandas DF

Pandas:当列值与另一个 DF 的列值匹配时提取 DF 的行

从另一个df引用中提取相应的df值

如果索引值接近另一个df中的索引,是否可以从df中提取数据?

如何使用Python / Pandas从另一个df中提取日期范围最接近记录的1条相关记录?

Python Pandas - 如何将 df 中的列值与另一个 df 的列值进行比较

pandas:使用与另一个df中的索引和列匹配的值填充df列

pandas:从一个df中搜索包含列表的另一个df列中的列值

python和pandas:使用来自一个df的bin计数从另一个没有共享列的df获取类似的binned计数

如何迭代 pandas df 以制作另一个 pandas df?

使用另一个位置pandas df改变pandas DF

如何从熊猫df中的x列中提取值,其中df中的y列== list(i)

使用另一个具有相应替换的 Pandas df 替换 Pandas 列中的值

如何从另一个df值中补充一个df

在 Pandas DF 中提取具有特定年份的行

如何从pandas df中提取年份作为数组

如何在pandas df中提取和删除?

使用另一个df替换列值

Python Pandas 在一个基于另一个 df 的 df 中删除行

根据另一个中的值填充新的pandas df列

Pandas列,其中每个值取决于另一个df查询

如果值相同,Python Pandas将列从df复制到另一个

提取对应于另一个df的单个元素的数据帧的值

如何使用另一列中的一个键将pandas df与多列合并?

pandas - 在另一个 DF 中查找一个值而不合并来自另一个数据帧的数据

遍历一个df并将值乘以另一个df的值

将Pandas df中的行替换为另一个df中的行

如何从另一个df的值子集中制作一个新的df?

如何将 pandas 嵌套列复制到另一个 DF?