Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5494

Re: [Python-de] Anfaengerfrage: Dataframe - Zeilenmittel - Spaltenmittel

From Peter Otten <__peter__@web.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Anfaengerfrage: Dataframe - Zeilenmittel - Spaltenmittel
Date 2019-06-19 18:22 +0200
Organization None
Message-ID <mailman.153.1560961377.21674.python-de@python.org> (permalink)
References <1825444.o0KX4FVeTt@host> <A873B342-4C42-4F2A-924F-1B8DA32A6488@wodca.de> <2735687.t9uVyT51e0@host> <25610520.bS6HIQtzF9@palindrom>

Show all headers | View raw


eilfh wrote:

> Am Dienstag, 18. Juni 2019, 09:09:39 CEST schrieb Achim Herwig:
>>         for i in range(spalte_nr):
>>                 for j in range(spalte_nr):
> 
> 
> danke fürs mitdenken
> 
> 
> nach euren Hinweisen und weiteren vielen "Versuchen"
> (alles mit pandas,
> in Zeile/Spalte 0 stehen jeweils die Beschreibungen)
> 
> zeilen_anzahl = len(df.index)
> spalten_anzahl = len(df.columns)
> spalten_mittel = df.mean()
> zeilen_mittel = df.mean(axis = 1)
> 
> df1 = df

df und df1 beziehen sich auf dasselbe Objekt; wenn du eine Kopie willst:

df1 = df.copy()

> for i in range(1, spalten_anzahl + 1):
>     for j in range(1, zeilen_anzahl + 1):
>         df1.iloc[j - 1, i - 1] = df1.iloc[j -1 , i - 1]
> - spalten_mittel[i - 1]
> - zeilen_mittel[j - 1]
> + ges_mittel
> 
> 
> .... sicher nicht die eleganteste Lösung,
> aber es komm das 'raus, was ich suche

Ebenfalls per trial-and-error bin ich auf

spaltenmittel = df.mean(axis="columns")
zeilenmittel = df.mean(axis="index")
ges_mittel = df.as_matrix().mean()
df1 = (df - zeilenmittel).sub(spaltenmittel, axis="index") + ges_mittel

gekommen. Etwas übersichtlicher finde ich es, zwischendurch zu numpy zu 
wechseln:

a = df.as_matrix()
b = (a.T - a.mean(axis=1)).T - a.mean(axis=0) + a.mean()
df1 = pd.DataFrame(b, columns=df)

Statt der zweifachen Transposition ist auch

b = a - np.expand_dims(a.mean(axis=1), 1) - a.mean(axis=0) + a.mean()

möglich.

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de] Anfaengerfrage: Dataframe - Zeilenmittel - Spaltenmittel Peter Otten <__peter__@web.de> - 2019-06-19 18:22 +0200

csiph-web