python - 如何过滤熊猫数据框并保留特定元素?
问题描述
我有一个熊猫数据框,它是一个 50x50 的相关矩阵。在下图中,您可以看到我的示例
如果可能的话,我想做的当然是制作一个新数据框,其中只有旧数据框的元素高于 0.5 或低于 -0.5,表示强线性关系,但不是 1,避免方差部分。
我不认为我问的是完全可能的,因为当然变量 x0 不会具有与 x1 等相同的强关系,所以新的数据框看起来不会很好。
但是有什么方法可以快速扫描这个数据框,找到我提到的值,或者至少将它们插入到数组中?
任何见解都会有所帮助。谢谢
解决方案
如果您想删除太低的相关对,您无法真正查看相关矩阵。您可以做的一件事是堆叠框架并保留相关的相关对。
具有(作为示例随机生成):
0 1 2 3 4
0 0.038142 -0.881054 -0.718265 -0.037968 -0.587288
1 0.587694 -0.135326 -0.529463 -0.508112 -0.160751
2 -0.528640 -0.434885 -0.679416 -0.455866 0.077580
3 0.158409 0.827085 0.018871 -0.478428 0.129545
4 0.825489 -0.000416 0.682744 0.794137 0.694887
你可以这样做:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.uniform(-1, 1, (5, 5)))
df = df.stack()
df = df[((df > 0.5) | (df < -0.5)) & (df != 1)]
0 1 -0.881054
2 -0.718265
4 -0.587288
1 0 0.587694
2 -0.529463
3 -0.508112
2 0 -0.528640
2 -0.679416
3 1 0.827085
4 0 0.825489
2 0.682744
3 0.794137
4 0.694887
推荐阅读
- javascript - 如何切换按钮 onClick 的外观?
- c - 我必须在 GL/glew.h 之后包含 SDL_opengl.h 吗?
- go - GCP IoT 核心拒绝此 RSA_PEM 公钥并出现错误
- node.js - 在 NodeJS 中通过 EJS 和 Express 渲染
- bash - 使用 bash 测试并重新启动服务
- ios - 如何将文件从 Swift 中的 Document/Inbox 移动到内部应用程序,例如“try FileManager.default.moveItem”?
- solr - Solr 返回查询中的所有文档
- node.js - 在 node.js 中使用 dgram 发送 udp 消息
- flutter - 在自定义 TextField 中颤动 Google Places
- java - 按规则排序字符串列表