Re: Verstaendnisproblem
Peter Otten <__peter__-S0/[email protected]>
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Message-ID | <[email protected]> |
On 11/02/2021 18:29, eilfh wrote: > Am Donnerstag, 11. Februar 2021, 13:19:56 CET schrieb Stefan Schwarzer: > Hallo, Stefan > > vielen Dank für Deine schnelle Antwort > > > > Vorhanden sind (neben Anfängerwissen über python, pandas & co.) > > eine (Excel-)Tabelle mit Zählerständen zu konkreten Terminen, > die ich in ein pandas-Dataframe eingelesen habe. > > Mit df...shift(1) kann ich die Differenzen zwischen Zählerablesungen bestimmen. > > > > Gelegentlich wird auch ein Zähler ausgetauscht. > > x1 sei die letzte Ablesung vor dem Tausch > x2, x3 seien Ausbau- bzw. Einbauzählerstand > x4 erste Ablesung nach dem Tausch > (x5 sei die (Zeit-)Differenz zischen den beiden routinemäßigen Ablesungen.) > > > Der neu zu berechnende Verbrauch wäre dann > > v = (x2 - x1 + x4 - x3) / x5 > > > >> bekomme ich keinen Skalar, sondern ein `pandas.Series`- Objekt. > > Du hast recht, das war ein entscheidender Hinweis! > > statt: > x1 = df.loc[df.Datum == '1993-09-09', 'Spalte_7'] > ---> 55 490 > > besser: > x1 = df.at[55, 'Spalte_7'] > ---> 490 (der gesuchte Skalar) > > > aber woher/womit erfahre ich die "rowid" 55 ? Brauchst Du denn die Zeile? Eine Series mit genau einem Wert >>> x 0 4 Name: B, dtype: int64 >>> type(x) <class 'pandas.core.series.Series'> kannst Du einfach entpacken >>> [y] = x >>> y 4 >>> type(y) <class 'int'> oder wenn du weißt, dass Du z. B. eine Fließkommazahl erwartest, direkt konvertieren: >>> float(x) 4.0 _______________________________________________ python-de maillist - [email protected] https://mail.python.org/mailman/listinfo/python-de