我有一个CSV文件,
| 时间|Col_A| B列|C列|D列|价格|
| --|--|--|--|--|--|
| 123 |A1| B1| C2| D6|二十三点四十三分|
| 124 |A5| B3| C7| D1|十四点六十三分|
| 125 |A3| B2| C3| D2| 343.43|
| 126 |A2| B1| C2| D6|四十三点四十三|
| 127 |A1| B1| C7| D2| 6.63|
现在我想创建一个5维矩阵,我想它应该叫Tensor吧?
问题1)这个Tensor可以在Pandas中完成吗?或者有更好的Python库吗?你有API手册的链接吗?
Tensor的维度将是“time”、“Col_A”、“Col_B”、“Col_C”、“Col_D”。单元格将包含标量“Price”。
所以我希望能够设置单元格,可能是这样的:
my_matrix[time=123, Col_A = A1, Col_B = B1, Col_C = C2, Col_D = D6] = 23.43
字符串
问题2)那么设置标量的语法是什么?我如何读取标量?
我也想对维数求和,比如我想在下面这样求和,当我写“*”的时候,我的意思是星星是一个小的。
Matrix[time = *, Col_A = A1, Col_B = B1 and B2 and B3, Col_C = *, Col_D = D6 and D2]
型
问题3)如何对不同维度求和?是否需要for循环?是否可以使用其他操作,如除法?
实际上,我想在每个单元格里放几个数字。也许我想在每个单元格里放“time”和“Price”。我想的是字符串连接“time_Price”,但是要做一个大的求和,会有很多子串提取,这可能很耗时?因此,我在考虑创建几个相同的Tensor。一个Tensor可能包含每个单元格中的“价格”,另一个Tensor可能在每个单元格中包含“时间”。所以如果我想检查Price的时间,我将在两个Tensor中使用相同的坐标。
问题4)我想使用多个Tensor更快,每个单元包含一个值,而不是使用一个包含许多变量的Tensor,即连接变量的长字符串?或者有更好的方法吗?
1条答案
按热度按时间sz81bmfz1#
看起来一个框架已经是一个适合你的数据的结构了。为了回答你的问题,我将使用你的示例数据,按
Col_*
列索引:字符串
现在我们有了一个嵌套框架,其中
Col_*
值是索引,time
和Price
值在“单元格”中。这基本上是问题1的答案。型
对于问题2,您可以使用索引来设置“单元格”值:
型
或者同时使用两个“细胞”:
型
或者有个条件:
型
输出量:
型
对于问题3,使用索引来访问所需的值;
slice(None)
用于索引:型
输出量:
型
在问题4中,您可以在框架中设置任意多个“单元格”值。如上所示,您可以根据需要单独或一起访问“单元格”值。例如,假设您想要地址和性别信息。然后您可以像这样设置其中的一些值:
型
从原始的矩阵开始,这给出:
型
请注意,出于性能原因,您应该在添加新条目后使用
df = df.sort_index()
。您也可以轻松地搜索此框架。例如,查找所有具有
Price > 50
的行:型
输出量:
型
或
time < 125
,未指定性别:型
输出量:
型