假设我有以下格式的数据集
Date Value
AAAA_Property1 2015/07/22 0.01
AAAA_Property1 2015/07/23 0.02
.
.
.
AAAA_Property2 2015/07/22 0.88
AAAA_Property2 2015/07/23 0.80
.
.
.
.
BBBB_Property1 2015/07/22 0.04
BBBB_Property1 2015/07/23 0.07
.
.
.
BBBB_Property2 2015/07/22 0.72
BBBB_Property2 2015/07/23 0.70
.
.
.
.
正如您所看到的,每个AAAA,BBBB,CCCC都有许多属性(property1,property2等),传播超时。 (所以它真的是一个'立方'数据集)
现在我想知道我们如何将事物组合在一起,并使数据集看起来像下面的
Name Date Property1 Property2 . . .
AAAA 2015/07/22 0.01 0.3
AAAA 2015/07/23 0.02 0.4
.
.
.
BBBB 2015/07/22 0.02 0.4
BBBB 2015/07/23 0.09 0.7
.
.
.
我需要对numpy及其ndarray进行一些研究,并且知道reshape()方法和where()方法可能用于实现目标。但我不能把它们放在一起,因为这里的数据实际上是3维。
然而,我确实发现了一些看起来与我想要完成的东西非常相似的东西。请查看以下数据
data = [
['Sulfate', 'Nitrate', 'EC', 'OC1', 'OC2', 'OC3', 'OP', 'CO', 'O3'],
('Basecase', [
[0.88, 0.01, 0.03, 0.03, 0.00, 0.06, 0.01, 0.00, 0.00],
[0.07, 0.95, 0.04, 0.05, 0.00, 0.02, 0.01, 0.00, 0.00],
[0.01, 0.02, 0.85, 0.19, 0.05, 0.10, 0.00, 0.00, 0.00],
[0.02, 0.01, 0.07, 0.01, 0.21, 0.12, 0.98, 0.00, 0.00],
[0.01, 0.01, 0.02, 0.71, 0.74, 0.70, 0.00, 0.00, 0.00]]),
('With CO', [
[0.88, 0.02, 0.02, 0.02, 0.00, 0.05, 0.00, 0.05, 0.00],
[0.08, 0.94, 0.04, 0.02, 0.00, 0.01, 0.12, 0.04, 0.00],
[0.01, 0.01, 0.79, 0.10, 0.00, 0.05, 0.00, 0.31, 0.00],
[0.00, 0.02, 0.03, 0.38, 0.31, 0.31, 0.00, 0.59, 0.00],
[0.02, 0.02, 0.11, 0.47, 0.69, 0.58, 0.88, 0.00, 0.00]]),
('With O3', [
[0.89, 0.01, 0.07, 0.00, 0.00, 0.05, 0.00, 0.00, 0.03],
[0.07, 0.95, 0.05, 0.04, 0.00, 0.02, 0.12, 0.00, 0.00],
[0.01, 0.02, 0.86, 0.27, 0.16, 0.19, 0.00, 0.00, 0.00],
[0.01, 0.03, 0.00, 0.32, 0.29, 0.27, 0.00, 0.00, 0.95],
[0.02, 0.00, 0.03, 0.37, 0.56, 0.47, 0.87, 0.00, 0.00]]),
('CO & O3', [
[0.87, 0.01, 0.08, 0.00, 0.00, 0.04, 0.00, 0.00, 0.01],
[0.09, 0.95, 0.02, 0.03, 0.00, 0.01, 0.13, 0.06, 0.00],
[0.01, 0.02, 0.71, 0.24, 0.13, 0.16, 0.00, 0.50, 0.00],
[0.01, 0.03, 0.00, 0.28, 0.24, 0.23, 0.00, 0.44, 0.88],
[0.02, 0.00, 0.18, 0.45, 0.64, 0.55, 0.86, 0.00, 0.16]])
]
我做了一个帮助(数据),结果证明是一个列表对象。但我正在努力(1)如何将我的数据转换为上述格式,以及(2)如何从上述格式中添加子集矩阵并从那里执行矩阵运算。
我提出的一些模拟代码......
import pandas as pd
import numpy as np
df = pd.read_excel('xxx.xlsx', sheetname='1')
myMatrix = df.as_matrix()
myMatrix = myMatrix[:,:].astype(float)
# parse the first column and separate the AAAAs from the Property's
...
for current in ['AAAA','BBBB', ...]:
mySubMatrix = myMatrix.where(firstColumn == current)
mySubMatrix = mySubMatrix.reshape(numberOfDates, numberOfProperties)
#then append mySubMatrix to the new target matrix
我不希望这段代码运行......但这是我能想到的算法