python - 将 Pandas 数据帧的行映射到 numpy 数组
问题描述
抱歉,我知道有很多与索引相关的问题,而且它可能让我很头疼,但我在这方面遇到了一些麻烦。我通常熟悉.loc
、.iloc
和.index
方法和切片。该方法.reset_index
可能没有(也可能无法)在我们的数据帧上调用,因此索引标签可能不按顺序排列。数据帧和 numpy 数组实际上是数据帧的不同长度子集,但对于这个例子,我将保持它们相同的大小(一旦我有一个例子,我就可以处理偏移)。
我可以根据一些搜索条件从数据框中提取行列。
idxlbls = df.index[df['timestamp'] == dt]
stuff = df.loc[idxlbls, 'col3':'col5']
但是如何将其映射到行号(数组索引,而不是标签索引)以用作 numpy 中的数组索引(假设行长度相同)?
stuffprime = array[?, ?]
我需要它的原因是因为数据框更大更完整并且包含列搜索条件,但是 numpy 数组是在管道中预先提取和修改的子集(并且其中没有相同的搜索条件) . 我需要搜索数据框并从 numpy 数组中提取等效数据。基本上我需要将数据帧中的特定行与 numpy 数组的相应行相关联。
解决方案
我会将 pandas 索引映射到 numpy 索引:
keys_dict = dict(zip(idxlbls, range(len(idxlbls))))
然后,您可以使用字典keys_dict
通过 pandas 索引来寻址数组元素:array[keys_dict[some_df_index], :]
推荐阅读
- angular - ng-reflect-ng-for-of Angular 9
- javascript - 当我尝试写入最后一个值 React 时,输入类型 =“日期”重置
- bash - grep 命令列表 bin/bash 或破折号
- windows - 如何使用 cdb(windbg 命令行)在会话之间保留断点?
- excel - 尝试从 Word 文档调用 Excel 文档
- javascript - 即使我正在创建安全服务器(https),nodejs 端口也不安全
- php - 为什么这个函数不在包含时执行?
- ruby-on-rails - Heroku 应用程序的 Bundler 运行的 Ruby 版本错误
- php - PDO 错误:$pdo->prepare()->execute() 抛出错误“在布尔值上调用成员函数 fetch()”
- java - 如何从java中的文件打印读取的换行符?