Spalte zu DataFrame hinzufügen mit anderem Index
Verfasst: Freitag 8. April 2016, 19:44
Hallo,
leider scheine ich das grundlegende Prinzip der Indices bei Pandas DataFrames nicht zu verstehen.
Folgendes Beispiel:
gegeben ist JSON mit folgender Struktur:
Ich möchte jeweils die Werte ("Value") je nach "SeriesID" als Spalte in einem DataFrame.
Erster Teil
Wie kann ich es erreichen, das beide den gleichen Index erhalten?
Vielen Dank für eure Hilfe.
leider scheine ich das grundlegende Prinzip der Indices bei Pandas DataFrames nicht zu verstehen.
Folgendes Beispiel:
gegeben ist JSON mit folgender Struktur:
Code: Alles auswählen
<Root>
<Results>
<SeriesId>178</SeriesId>
<SamplingTime>0001-01-01T00:00:00Z</SamplingTime>
<DataPoints>
<Start>2016-04-05T00:00:00Z</Start>
<Value>41.69</Value>
</DataPoints>
<DataPoints>
<Start>2016-04-05T01:00:00Z</Start>
<Value>41.69</Value>
</DataPoints>Code: Alles auswählen
js = r.json()
df = json_normalize(js, 'DataPoints',['SeriesId'])
df['P'] = df.groupby('SeriesId').get_group(int(input[0]))['Value']
df['Demand'] = df.groupby('SeriesId').get_group(int(input[1]))['Value']Wie ihr sehen könnt, werden "P" und "Demand" mit einem unterschiedlichem Index versehen. Daher kann ich sie nicht mehr in einem DataFrame vereinen, sondern lediglich "anhängen".Time Value SeriesId P Demand
0 2016-04-05T00:00:00Z 41.69 178 41.69 NaN
1 2016-04-05T01:00:00Z 41.69 178 41.69 NaN
2 2016-04-05T02:00:00Z 41.69 178 41.69 NaN
3 2016-04-05T03:00:00Z 41.69 178 41.69 NaN
4 2016-04-05T04:00:00Z 41.69 178 41.69 NaN
5 2016-04-05T05:00:00Z 41.69 178 41.69 NaN
6 2016-04-05T06:00:00Z 41.78 178 41.78 NaN
7 2016-04-05T07:00:00Z 41.69 178 41.69 NaN
8 2016-04-05T08:00:00Z 34.00 178 34.00 NaN
9 2016-04-05T09:00:00Z 27.47 178 27.47 NaN
10 2016-04-05T10:00:00Z 23.18 178 23.18 NaN
11 2016-04-05T11:00:00Z 22.64 178 22.64 NaN
12 2016-04-05T12:00:00Z 22.64 178 22.64 NaN
13 2016-04-05T13:00:00Z 22.99 178 22.99 NaN
14 2016-04-05T14:00:00Z 31.97 178 31.97 NaN
15 2016-04-05T15:00:00Z 35.01 178 35.01 NaN
16 2016-04-05T16:00:00Z 41.69 178 41.69 NaN
17 2016-04-05T17:00:00Z 42.28 178 42.28 NaN
18 2016-04-05T18:00:00Z 42.28 178 42.28 NaN
19 2016-04-05T19:00:00Z 42.28 178 42.28 NaN
20 2016-04-05T20:00:00Z 41.78 178 41.78 NaN
21 2016-04-05T21:00:00Z 41.69 178 41.69 NaN
22 2016-04-05T22:00:00Z 41.69 178 41.69 NaN
23 2016-04-05T23:00:00Z 34.00 178 34.00 NaN
24 2016-04-06T00:00:00Z 34.00 178 34.00 NaN
25 2016-04-06T01:00:00Z 25.01 178 25.01 NaN
26 2016-04-06T02:00:00Z 25.86 178 25.86 NaN
27 2016-04-06T03:00:00Z 34.00 178 34.00 NaN
28 2016-04-06T04:00:00Z 34.00 178 34.00 NaN
29 2016-04-06T05:00:00Z 41.69 178 41.69 NaN
.. ... ... ... ... ...
Letzter Teil
206 2016-04-08T16:00:00Z 29.58 187 NaN 29.58
207 2016-04-08T17:00:00Z 32.22 187 NaN 32.22
208 2016-04-08T18:00:00Z 31.96 187 NaN 31.96
209 2016-04-08T19:00:00Z 30.66 187 NaN 30.66
210 2016-04-08T20:00:00Z 30.68 187 NaN 30.68
211 2016-04-08T21:00:00Z 29.00 187 NaN 29.00
212 2016-04-08T22:00:00Z 28.45 187 NaN 28.45
213 2016-04-08T23:00:00Z 24.18 187 NaN 24.18
214 2016-04-09T00:00:00Z 23.28 187 NaN 23.28
215 2016-04-09T01:00:00Z 21.84 187 NaN 21.84
216 2016-04-09T02:00:00Z 21.46 187 NaN 21.46
217 2016-04-09T03:00:00Z 21.72 187 NaN 21.72
218 2016-04-09T04:00:00Z 22.42 187 NaN 22.42
219 2016-04-09T05:00:00Z 23.42 187 NaN 23.42
220 2016-04-09T06:00:00Z 27.21 187 NaN 27.21
221 2016-04-09T07:00:00Z 25.12 187 NaN 25.12
222 2016-04-09T08:00:00Z 22.76 187 NaN 22.76
223 2016-04-09T09:00:00Z 22.58 187 NaN 22.58
224 2016-04-09T10:00:00Z 21.83 187 NaN 21.83
225 2016-04-09T11:00:00Z 20.81 187 NaN 20.81
226 2016-04-09T12:00:00Z 19.94 187 NaN 19.94
227 2016-04-09T13:00:00Z 20.35 187 NaN 20.35
228 2016-04-09T14:00:00Z 20.30 187 NaN 20.30
229 2016-04-09T15:00:00Z 22.27 187 NaN 22.27
230 2016-04-09T16:00:00Z 26.91 187 NaN 26.91
231 2016-04-09T17:00:00Z 29.62 187 NaN 29.62
232 2016-04-09T18:00:00Z 31.81 187 NaN 31.81
233 2016-04-09T19:00:00Z 29.56 187 NaN 29.56
234 2016-04-09T20:00:00Z 27.44 187 NaN 27.44
235 2016-04-09T21:00:00Z 24.00 187 NaN 24.00
Wie kann ich es erreichen, das beide den gleichen Index erhalten?
Vielen Dank für eure Hilfe.