我有一个问题,我有像下面这样的巨大数据集(Correl Coef 矩阵)
A B C D E
A 1, 0.413454352,0.615350574,0.479720098,0.34261232
B 0.413454352,1, 0.568124328,0.316543449,0.361164436
C 0.615350574,0.568124328,1, 0.633182519,0.790921334
D 0.479720098,0.316543449,0.633182519,1, 0.450248008
E 0.34261232, 0.361164436,0.790921334,0.450248008,1
Run Code Online (Sandbox Code Playgroud)
我想获取此数据框中的所有值,其中单元格值大于 0.6 它应该与行名称和列名称一起使用,如下所示
row_name col_name value
1 A C 0.61
2 C A 0.61
3 C D 0.63
3 C E 0.79
4 D C 0.63
5 E C 0.79
Run Code Online (Sandbox Code Playgroud)
如果我们也可以忽略 (A,C) 或 (C,A) ..那就更好了。
我知道我可以使用 for 循环来做到这一点,但这种方法对于大数据集效率不高。
我有一个如下所示的数据框
A_Name B_Detail Value_B Value_C Value_D ......
0 AA X1 1.2 0.5 -1.3 ......
1 BB Y1 0.76 -0.7 0.8 ......
2 CC Z1 0.7 -1.3 2.5 ......
3 DD L1 0.9 -0.5 0.4 ......
4 EE M1 1.3 1.8 -1.3 ......
5 FF N1 0.7 -0.8 0.9 ......
6 GG K1 -2.4 -1.9 2.1 ......
Run Code Online (Sandbox Code Playgroud)
这只是数据框的一个示例,我可以有 n 个列,例如(Value_A,Value_B,Value_C,............ Value_N)
现在我想过滤所有列(Value_A,Value_B,Value_C,...)的绝对值小于1的所有行。
如果列数有限,您可以通过简单地在数据框中的列上放置“和”条件来过滤数据,但我无法弄清楚在这种情况下该怎么做。
我不知道此类列的数量是多少,我唯一知道此类列将以“值”为前缀。
在上面的情况下输出应该是这样的
A_Name B_Detail Value_B Value_C Value_D ......
1 BB Y1 0.76 -0.7 0.8 ......
3 DD L1 …Run Code Online (Sandbox Code Playgroud) 我有一个类型为 Panda 的对象,并且 print(object) 给出以下输出
print(type(recomen_total))
print(recomen_total)
Run Code Online (Sandbox Code Playgroud)
输出是
<class 'pandas.core.frame.Pandas'>
Pandas(Index=12, instrument_1='XXXXXX', instrument_2='XXXX', trade_strategy='XXX', earliest_timestamp='2016-08-02T10:00:00+0530', latest_timestamp='2016-08-02T10:00:00+0530', xy_signal_count=1)
Run Code Online (Sandbox Code Playgroud)
我想在 pd.DataFrame 中转换这个对象,我该怎么做?
我也尝试了 pd.DataFrame(object), from_dict ,它们抛出错误