Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5496
| Path | csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Peter Otten <__peter__@web.de> |
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Anfaengerfrage: Dataframe - Zeilenmittel - Spaltenmittel |
| Date | Wed, 19 Jun 2019 22:35:31 +0200 |
| Organization | None |
| Lines | 120 |
| Message-ID | <mailman.155.1560976545.21674.python-de@python.org> (permalink) |
| References | <1825444.o0KX4FVeTt@host> <9390763f-1e2a-fb62-50ed-6b776764aec9@goebel-consult.de> <8217725.EGQyf2vfZd@host> <2233175.VqSBi401Pp@palindrom> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset="iso-8859-1" |
| Content-Transfer-Encoding | quoted-printable |
| X-Trace | news.uni-berlin.de WD9AAic9A4UnBGQzWR+zTQw/Sx1AovuFPAvMKN/wUodA== |
| Return-Path | <__peter__@web.de> |
| X-Original-To | python-de@python.org |
| Delivered-To | python-de@mail.python.org |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1560976537; bh=puMdsJ8XZnKV64iXY9bJvf6rklWPkzbxk4pF4A4tdY0=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=rsJp2gzRDOZHPmNQ5AZ5jq7XQebwAuO1OpAYay/u02EiZP0E1EEi2WN/yQfjC8DtY oF2P4FFPesf2uJAZvWdOI95fsyE6LzG7ZgjGm9Ay65vOTeY7TVdLb+G2egWNGRUBgJ G2VxqI3PhZUMi1D/ftet/TKOVE/VzWcoA9MTo50U= |
| X-UI-Sender-Class | c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 |
| User-Agent | KMail/4.13.3 (Linux/3.13.0-170-generic; KDE/4.13.3; x86_64; ; ) |
| In-Reply-To | <8217725.EGQyf2vfZd@host> |
| X-Provags-ID | V03:K1:g/aEXHD4Jk/3RbKnMBlDM3O8siwqmEvR7YYpM64KfNx9rUL2SM5 iMgKmpcCML93s5UkTKo/I3vKSYuhrGr3t0BUbEdrJWM2RjBuSSnlY3nZMl17rWrQVW9Dkqc CIGtrOp+fEycKMT5EnTX/GyHb70CNllDnnwzQmB+nDJrKvXwZ6wa/kOOHENUAraHGsIBxzP mYVtVFMnYQewrV9QaRJxw== |
| X-Spam-Flag | NO |
| X-UI-Out-Filterresults | notjunk:1;V03:K0:8Wa2BaKYGLc=:FqMIcds53RA+EvjLQ5mWGH nIPKaE5T9fxPrGvaLM4JMYhRxzGhFYlJqnGyaqjxxBxh5PWboKsNPM7QW/5mNPfY+3MJ76EyF C5O/2OpPIZNtbxhebXLwOb8Aj7zmlrqSLPtT0+LYi/u5V7uqzlFCLMX9vKFMxyAFpUWEHd6u8 qNOa4Uu1GZlWCJdr75HyWOES1tIdSXfjraeC66lD2LvKRC7FDz3eZ5Ss7jUeAiGChEPJ3UH8f sWWJjQij/RvZZehjTtXYJODaWa7fPGP2Zlv7WAcwTX4hKHuwlbl3hcS/sJfuCRX3ddbhpAIAp PIcLjbs1v9YyDdJ+HbNm0DpK6H1/eXhGGunwvzuyBWKgGxcPRw9h7gsKV9uZ0RruSV5a7ZNxx 7pQVqsflk+WcQ8mdXZ1YsuKmZ2l3wv8Rxg7463cpWye0nur7+3CsBpAQQRTNygIDyRW1yBN9P SI2gaqo8vNIRx3Jxe07NaX5vQKGsMGISVGEmHN5xXKnzh7Co2isbCfuprt3TJrg6O62510XsH uHqeLFbQVxx4e1oG5iFruw8MDP8Dm6V46Kl/8e0d0Ck1LxDQE3MYnkkWp5RlNmetlI9Kdsgs/ 4JCometPeuq7YaD/srl84DWf8fvSknDFj4+H9CO0WadSU9sBBTSsoPbscu+PXpkl249kxtyPb 4K4qmz8ZcMK6y94yNYulOn9Ad57l1/prGsU8tteVcz40dIz47dpM8Sl0bW8+w3qzmeXeg2grC abfKx9iychsRM4GWo3PV/5bW2Ko/EOJFKgcQ5FV+OcpidaEadtOfgtx5d2txF4KwSt2gm2CdF KE4zHaKogwMM54I3/A7APK6pEZMnptCcEZUdbameMDqJST3zxg0YbqaHx48fW30ECOy5sUJKe sAbE7l94K9euuqL2KMl3SCQI7ajS5PZXvXaeg+mE843zEck9f9aAs61asjVL9RCWv+A2icvVn lV14H0xemQu3FMngXRzOJFzLpF/uH0HXYAN+/xtSM3SGv6x6FmEzy |
| X-BeenThere | python-de@python.org |
| X-Mailman-Version | 2.1.29 |
| Precedence | list |
| List-Id | Die Deutsche Python Mailingliste <python-de.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-de>, <mailto:python-de-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-de/> |
| List-Post | <mailto:python-de@python.org> |
| List-Help | <mailto:python-de-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-de>, <mailto:python-de-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <2233175.VqSBi401Pp@palindrom> |
| X-Mailman-Original-References | <1825444.o0KX4FVeTt@host> <9390763f-1e2a-fb62-50ed-6b776764aec9@goebel-consult.de> <8217725.EGQyf2vfZd@host> |
| Xref | csiph.com de.comp.lang.python:5496 |
Show key headers only | View raw
eilfh wrote:
> Am Mittwoch, 19. Juni 2019, 14:08:33 CEST schrieb Hartmut Goebel:
>> immer "i-1" verwendest, kannst Du hier
>> "range(spalten_anzahl)" verwenden. Das läuft von 0 und bis
>
>
> Danke für eure schnellen Antworten
>
> @ Hartmut:
> klappt tatsächlich,
> nur ein Verständnisproblem meinerseits :
> Indizierung fängt bei 0 an (= das sind aber die Spalten-/bzw. die
> Zeilenköpfe)
Die "Köpfe" sind nicht per Index erreichbar:
>>> df = pd.DataFrame([[1,2], [3,4], [5,6]], columns=["foo", "bar"])
>>> df.iloc[0,0]
1
Indizes einer Sequenz der Länge N laufen von 0 bis N-1,
>>> for i in range(3):
... print(i, "abc"[i])
...
0 a
1 b
2 c
negative Indizes zählen vom Ende einer Sequenz:
>>> df.iloc[-1,0]
5
>>> "abc"[-1]
'c'
>>> "abc"[-2]
'b'
>>> "abc"[-3]
'a'
> und dann aber i - 1, bzw. j - 1 --> 0 - 1 --> -1 ???
> aber Ergebnis stimmt (für dich sicher trivial!)
> (irgendwie denk man wohl
> -- auch nach vielen Jahren --
> immer noch in Turbo-Pascal-Strukturen)
In deinem Code-Beispiel hast du aber von 0 bis N-1 indiziert, nur etwas
umständlich erst mit 1...N begonnen und dann jeweils 1 abgezogen.
Auf das Endergebnis hatte das keinen Einfluss:
>>> [i-1 for i in range(1, N+1)] # du
[0, 1, 2]
>>> [i for i in range(N)] # üblich
[0, 1, 2]
> @Peter:
> df1 = df.copy()
> habe ich dankend übernommen
>
> df.as_matrix()
> FutureWarning: Method .as_matrix,
> das könnte ich aktualisieren (Use .values instead)
Möglicherweise ist meine Pandas-Version ein bisschen älter als deine ;)
> aber:
> meine DataFrames sind nicht quadratisch
> (vermutl. deshalb scheitert das)
> (hier im Testbsp.: 5 Spalten, 30 Zeilen)
> Abbruch, Fehlermitteilung:
> ValueError: Shape of passed values is (5, 30), indices imply (30, 30)
Das sollte eigentlich kein Problem sein. Hier ein vollständiges Script, mit
3 Spalten und 4 Zeilen:
$ cat tmp.py
import pandas as pd
df = pd.DataFrame(
[[1.,2.,3.], [10, 20, 30], [7, 23, 64], [6, 6, 7]],
columns=["foo", "bar", "baz"]
)
print(df)
a = df.values
b = (a.T - a.mean(axis=1)).T - a.mean(axis=0) + a.mean()
df1 = pd.DataFrame(b, columns=df)
print(df1)
Das gibt bei mir Folgendes aus:
$ python3 tmp.py
foo bar baz
0 1 2 3
1 10 20 30
2 7 23 64
3 6 6 7
[4 rows x 3 columns]
foo bar baz
0 7.916667 2.166667 -10.083333
1 -1.083333 2.166667 -1.083333
2 -15.416667 -6.166667 21.583333
3 8.583333 1.833333 -10.416667
[4 rows x 3 columns]
$
Produziert das bei dir ein Traceback (wenn ja, was genau)?
Back to de.comp.lang.python | Previous | Next | Find similar
Re: [Python-de] Anfaengerfrage: Dataframe - Zeilenmittel - Spaltenmittel Peter Otten <__peter__@web.de> - 2019-06-19 22:35 +0200
csiph-web