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: References: <1825444.o0KX4FVeTt@host> <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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <25610520.bS6HIQtzF9@palindrom> X-Mailman-Original-References: <1825444.o0KX4FVeTt@host> <2735687.t9uVyT51e0@host> Xref: csiph.com de.comp.lang.python:5494 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): >=20 >=20 > danke f=FCrs mitdenken >=20 >=20 > nach euren Hinweisen und weiteren vielen "Versuchen" > (alles mit pandas, > in Zeile/Spalte 0 stehen jeweils die Beschreibungen) >=20 > zeilen_anzahl =3D len(df.index) > spalten_anzahl =3D len(df.columns) > spalten_mittel =3D df.mean() > zeilen_mittel =3D df.mean(axis =3D 1) >=20 > df1 =3D df df und df1 beziehen sich auf dasselbe Objekt; wenn du eine Kopie willst= : df1 =3D df.copy() > for i in range(1, spalten_anzahl + 1): > for j in range(1, zeilen_anzahl + 1): > df1.iloc[j - 1, i - 1] =3D df1.iloc[j -1 , i - 1] > - spalten_mittel[i - 1] > - zeilen_mittel[j - 1] > + ges_mittel >=20 >=20 > .... sicher nicht die eleganteste L=F6sung, > aber es komm das 'raus, was ich suche Ebenfalls per trial-and-error bin ich auf spaltenmittel =3D df.mean(axis=3D"columns") zeilenmittel =3D df.mean(axis=3D"index") ges_mittel =3D df.as_matrix().mean() df1 =3D (df - zeilenmittel).sub(spaltenmittel, axis=3D"index") + ges_mi= ttel gekommen. Etwas =FCbersichtlicher finde ich es, zwischendurch zu numpy = zu=20 wechseln: a =3D df.as_matrix() b =3D (a.T - a.mean(axis=3D1)).T - a.mean(axis=3D0) + a.mean() df1 =3D pd.DataFrame(b, columns=3Ddf) Statt der zweifachen Transposition ist auch b =3D a - np.expand_dims(a.mean(axis=3D1), 1) - a.mean(axis=3D0) + a.me= an() m=F6glich.