Pearson/ Spearman Korrelation

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
nichtSoGuter
User
Beiträge: 92
Registriert: Mittwoch 13. April 2022, 17:40

Hallo,

ich habe einen Dataframe und möchte die Korrelation zwischen den einzelnen Spalten des Dataframes berechnen.
Wenn ich die Korrelationen mit der methode .corr() berechne, dann erhalte ich wie gewünscht korrelationswerte für jede korrelation zwischen den Spalten. Bei sowohl .corr(method="spearman") als auch .corr(method="pearson") erhalte ich erwünschte werte

Wenn ich die Korrealtionen zwischen den Spalten einzeln mit scipy.stats.pearsonr oder scipy.stats.spearmanr berechnen möchte, dann erhalte ich zum teil auch "nan" oder "inf". Dabei verwende ich bei beiden Methoden (also bei .corr() und scipy.stats....) das selbe dataframe.
Wie kann das sein, dass ich beim selben Dataframe unterschiedliches erhalte?

Problem bei scipy.stats.spearmanr
bei scipy.stats.spearmanr erhalte ich NaN values als ergebnis. aber keine Fehlermeldung.

Problem bei scipy.stats.pearsonr
bei scipy.stats.pearsonr erhalte ich folgende fehlermeldung: ValueError: array must not contain infs or NaNs
Mir ist bewusst, dass die corr() methode NaN values und Kategoriespalten ignoriert.

Das Dataframe hat keine Kategoriespalte und auch keine NaN values (habe ich geprüft).
Woran könnte es denn noch liegen?
Wäre lieb wenn mir jemand weiterhelfen könnte:-) ich sitze schon ziemlich lange daran
Antworten