我目前正在尝试分析具有四个比较值的数据集的滚动相关性,但只需要包含“a”的行的输出
我使用命令newdf = df.rolling(3).corr()
获得了数据帧
样本输入(随机数)
a b c d
1 a
1 b
1 c
1 d
2 a
2 b
2 c
2 d
3 a
3 b 5 6 3
3 c 4 3 1
3 d 3 4 2
4 a 1 3 5 6
4 b 6 2 4 1
4 c 8 6 6 7
4 d 2 5 4 6
5 a 2 5 4 1
5 b 1 4 6 3
5 c 2 6 3 7
5 d 3 6 3 7
并且需要输出
a b c d
1 a 1 3 5 6
2 a 2 5 4 1
我已经尝试过通过执行adf = newdf.filter(['a'], axis=0)
来过滤它,但是这会去除所有内容,当对另一个轴执行时,它会按列过滤。不幸的是,包含值为a、b、c、d的行的列未命名,因此我无法单独筛选该列。但是,如果可以使用按索引列出的值翻转行和列以获得所需的输出,则这不会是一个问题
尝试使用
loc
。将abcdabcd ...
列作为索引,只使用loc
在您的案例中,问题的实际来源是您的数据帧 具有多个索引
所以当你试图执行你想要的
newdf.filter(['a'], axis=0)
时 将索引仅包含的行保留为“a”字符串但由于数据帧有一个多索引,因此每行的 级别1也包含级别0的一些数字
要获得预期结果,请运行:
可能后跟.dropna()
另一种解决方案是:
相关问题 更多 >
编程相关推荐