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

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 18:22:41 +0200
Organization None
Lines 60
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>
Mime-Version 1.0
Content-Type text/plain; charset="iso-8859-1"
Content-Transfer-Encoding quoted-printable
X-Trace news.uni-berlin.de sLjA7Pc63aoeoxAOV6wyIAyQCzDrBarseOoCiOum9NHw==
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=1560961376; bh=/G1jXHGcDIhktPFCBFa6rF9K/J/3CP0yH7L88E0OPCk=; h=X-UI-Sender-Class:From:To:Subject:Date:In-Reply-To:References; b=Gga9APQRUMAa7Kq3lqVNg2QbpCoeas1OEIO2N/9smsNGUk9thaEGjMbxmxb8SJkCu 12cET9M4zD2bqFlUGHaVN/DwmCu0tus0ENkQirV9kWRfKLNSQOiX45UFlfgg6usVyl K9mNoF5HqP6be+aWMpFg46A6s7aMM0e7uwSl6208=
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 <2735687.t9uVyT51e0@host>
X-Provags-ID V03:K1:9OFb6ovwD5leg4q8vhcsnkqfzQ62M7T1r2IyPqhK51m9bRhkaiY d0wq06kVqvUc8uoINnoK85bIxxqeuNHcEmYUdHdJmbDQHGuC83VN5ycR5BDTzHtKtrlw68c mE8TNgB+bX8LVDr16t1xgcWMUG1uVzhzt9ovRaaoGlUzk/jU3grnnKeDhpeeOk0DUR2Zgqa fxr2MLGFH7fTpv07P0Gkg==
X-Spam-Flag NO
X-UI-Out-Filterresults notjunk:1;V03:K0:tRW4ovoY3a8=:JCxt2gCgHXF2z4zeURKdlk RhC4UunnohhQL7a8qbxzdWfq7/9J9opjvoyNW3r8r2J7wxNAbKWX7WqoNp2t2lmBUULEazhAt rW35mpcrIx1U/mb8bOo3aZm2czwzJlzVtfcDntcJ22fAhJPE2hn0WqR52qAsroQz4OXOcaGC3 WaPzuv3YockM/Ds372+K6m3BI7UK95GT9sRMtdu0zW2BEe+Ieqe17CCJ2kNeLzq+WiZXnEpBm kobCPoWeiHfTTz+OPj+opXDdOGJDFdapkoC0nDqL2erohs/1M+IvI4xrlBrLpJbgPZuR1vA1z +LgEYMvoIQNyeFTP5ypLOTE2uhx/clM4xWixti8RKUXnNGF1BTQ1qJmi5Phe91IJ1pgt6nT1u wc4j5zO669bBY+fLJLwkmu/7h3p0D5HV2mVG0mBL1gqqiesSb/sb2Yp1agOHAW7Y8k9rQF3gF /yOdr+BIwDLXZLMOyg7zqcmarRqhSKvSx7EBe9sV5iD3FpmuvJ0CIEKtbTmhaKpX+7vSP+jt9 i3KURQuXJ+tVypHOQim3aZePDgS3rM41t0Bz0rRatCBxKfV07WF7RI2yru0zkgznFb447xR68 uSRrY+CgLHqfG0sWlZ6zbaAe3QKeTO7qsf67GeB6gHko2MTyqhOPI5lnz44wrQb8HLn1Gg3io rGlY8Fljm3I7NJNXyxWOy3DmS2W/sA3X62H99uIDThUWSL0UbxISGTIkNlFNIyajThELNVria xUIaYyS8EdQsvmGaWrITV0C/kWLG4VoilbqT8EyLA4eYxKVPdMjAJ6TyemNSYLyjRCgodABbZ KViTyLMaOxsNX/yVXwJGgMkE9Jg/oylgK8OMpRxSm7XG6xk5P8+7dlujAOAT5VAMg8oRIU9hB b3iHZzbxN4zH5ATINDT2E4bZgrgdvp7UiKx6UVom1Ic+yS2aPynqRDMkeUzgdMmnm7uPc2hdw jAVA8hurdxobz7Jzqz2kYJ4cbeyCHQrMtUCi8Ot5Be3b1gTVi+3cB
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 <25610520.bS6HIQtzF9@palindrom>
X-Mailman-Original-References <1825444.o0KX4FVeTt@host> <A873B342-4C42-4F2A-924F-1B8DA32A6488@wodca.de> <2735687.t9uVyT51e0@host>
Xref csiph.com de.comp.lang.python:5494

Show key headers only | 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