我开始使用由day组成的日期框架,一个名为wap的列和一个产品列表。 对于给定的产品,我计算了结果,这些结果基本上是列抽头中的一些操作并保存在新列中。 (上面的视频代码)
NEG_00_04_p = waps_df1[waps_df1['produktname']=='NEG_00_04'] #one prodkt NEG_00_04
NEG_00_04_p = NEG_00_04_p.reset_index()
NEG_00_04_p1 = []
NEG_00_04_p['Diff'] = -NEG_00_04_p['wap'].diff(-1)
NEG_00_04_p['Diff'].shift(+1).fillna(0)
NEG_00_04_p['Diff'] = NEG_00_04_p['NewColumn'].shift(+1).fillna(0)
NEG_00_04_p['Result'] = NEG_00_04_p['NewColumn'] + NEG_00_04_p['wap']
结果,我得到了这个:
index datum_von datum_bis produktname wap Diff
0 0 2017-10-10 2017-10-10 NEG_00_04 2.10 1.32
1 12 2017-10-11 2017-10-11 NEG_00_04 3.42 18.27
2 24 2017-10-12 2017-10-12 NEG_00_04 21.69 -4.92
3 36 2017-10-13 2017-10-13 NEG_00_04 16.77 -4.47
4 48 2017-10-14 2017-10-14 NEG_00_04 12.30 1.17
5 60 2017-10-15 2017-10-15 NEG_00_04 13.47 -4.18
6 72 2017-10-16 2017-10-16 NEG_00_04 9.29 1.40
7 84 2017-10-17 2017-10-17 NEG_00_04 10.69 -1.11
8 96 2017-10-18 2017-10-18 NEG_00_04 9.58 -1.62
发生在初始日期框架中,我有许多产品(总共12个),并且每天都会重复产品,例如:
datum_von produktname wap
0 2017-10-10 NEG_00_04 2.10
1 2017-10-10 NEG_04_08 1.50
2 2017-10-10 NEG_08_12 0.50
3 2017-10-10 NEG_12_16 0.55
4 2017-10-10 NEG_16_20 0.52
5 2017-10-10 NEG_20_24 0.48
6 2017-10-10 POS_00_04 0.00
7 2017-10-10 POS_04_08 0.00
8 2017-10-10 POS_08_12 0.42
9 2017-10-10 POS_12_16 0.00
10 2017-10-10 POS_16_20 1.04
11 2017-10-10 POS_20_24 0.00
12 2017-10-11 NEG_00_04 3.42
13 2017-10-11 NEG_04_08 4.91
14 2017-10-11 NEG_08_12 0.31
15 2017-10-11 NEG_12_16 0.34
16 2017-10-11 NEG_16_20 0.45
17 2017-10-11 NEG_20_24 0.50
18 2017-10-11 POS_00_04 0.00
19 2017-10-11 POS_04_08 0.00
20 2017-10-11 POS_08_12 0.12
21 2017-10-11 POS_12_16 0.00
22 2017-10-11 POS_16_20 1.28
23 2017-10-11 POS_20_24 0.00
24 2017-10-12 NEG_00_04 21.69
25 2017-10-12 NEG_04_08 15.36
26 2017-10-12 NEG_08_12 0.87
27 2017-10-12 NEG_12_16 1.42
28 2017-10-12 NEG_16_20 0.76
29 2017-10-12 NEG_20_24 0.65
.. ... ... ...
150 2017-10-22 POS_00_04 0.00
151 2017-10-22 POS_04_08 0.00
152 2017-10-22 POS_08_12 0.00
153 2017-10-22 POS_12_16 0.00
154 2017-10-22 POS_16_20 0.00
155 2017-10-22 POS_20_24 0.00
156 2017-10-23 NEG_00_04 10.46
157 2017-10-23 NEG_04_08 9.73
158 2017-10-23 NEG_08_12 0.87
159 2017-10-23 NEG_12_16 1.26
160 2017-10-23 NEG_16_20 0.72
161 2017-10-23 NEG_20_24 0.68
162 2017-10-23 POS_00_04 0.00
163 2017-10-23 POS_04_08 0.00
164 2017-10-23 POS_08_12 0.00
165 2017-10-23 POS_12_16 0.00
166 2017-10-23 POS_16_20 0.00
167 2017-10-23 POS_20_24 0.00
我想要做的是实际完成所有产品的结果,并在我想要的日期框架中组织后
作为索引的天数和每列作为不同的产品。由于所有产品都有相同的天数,结果将是带有['Results']
的数组答案 0 :(得分:0)
首先,您可以将日期索引设置为:
indexed_df = orig_df.set_index('datum_von')
您可以使用添加列,该列是您产品的标签编码版本。
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
le = LabelEncoder()
indexed_df['label_products'] = le.fit_transform(indexed['produktname'])
ohe = OneHotEncoder()
onehotmatrix = ohe.fit_transform(indexed_df['label_products'])
# Just join the onehotmatrix on your dataframe
您将产品编码为数字,甚至是一个热门开关,每个产品都有1个,其他11个列为0。