Mittelwerte aus csv-Dateien, Leerfelder berücksichtigen
Verfasst: Samstag 21. Mai 2022, 10:55
Moin,
ich bin neu im Club und auch noch nicht sonderlich versiert in Sachen Python. Soviel zur Vorrede.
Mein aktuelles Projekt möchte folgendes.
Ich habe ca 10 gleich aufgebaute csv-Dateien. Jede Zeile ist einer Person zugeordnet. Die Spalten enthalten 7 Eigenschaften, die zu beobachtende Verhaltensweisen darstellen. Durch die Zahlenwerte 1 bis 4 werden die Verhaltensweisen pro Person eingestuft.
Das Programm soll also pro Person und Verhaltensweise aus allen 10 csv-Dateien den jeweiligen Mittelwert errechnen und als csv ausgeben.
Ich habe das Problem behelfsmäßig bisher so gelöst, dass ich die Dateien durchnummeriert (1.csv, 2.csv, ...) in einen eigenen Ordner gepackt habe, die jeweiligen Felder addieren und dann durch die Anzahl der files im Ordner teilen lasse.
Das funktioniert auf diese einfache Weise auch gut. Stößt aber an seine Grenzen, sobald mal ein Feld keine Daten enthält.
Mir ist klar, dass für die Berücksichtigung der NuN -Situation gänzlich anders vorgegangen werden muss. Nur wie?
Im Grunde müsste dies doch ein alltägliche Problem sein, dass irgendwie gelöst ist. Ich finde aber nix - oder habe nicht die richtige Suchstrategie?
Vielen Dank für's Lesen! Bin für jede Hilfe dankbar!
Anbei ein bisschen Code.
ich bin neu im Club und auch noch nicht sonderlich versiert in Sachen Python. Soviel zur Vorrede.

Mein aktuelles Projekt möchte folgendes.
Ich habe ca 10 gleich aufgebaute csv-Dateien. Jede Zeile ist einer Person zugeordnet. Die Spalten enthalten 7 Eigenschaften, die zu beobachtende Verhaltensweisen darstellen. Durch die Zahlenwerte 1 bis 4 werden die Verhaltensweisen pro Person eingestuft.
Das Programm soll also pro Person und Verhaltensweise aus allen 10 csv-Dateien den jeweiligen Mittelwert errechnen und als csv ausgeben.
Ich habe das Problem behelfsmäßig bisher so gelöst, dass ich die Dateien durchnummeriert (1.csv, 2.csv, ...) in einen eigenen Ordner gepackt habe, die jeweiligen Felder addieren und dann durch die Anzahl der files im Ordner teilen lasse.
Das funktioniert auf diese einfache Weise auch gut. Stößt aber an seine Grenzen, sobald mal ein Feld keine Daten enthält.
Mir ist klar, dass für die Berücksichtigung der NuN -Situation gänzlich anders vorgegangen werden muss. Nur wie?
Im Grunde müsste dies doch ein alltägliche Problem sein, dass irgendwie gelöst ist. Ich finde aber nix - oder habe nicht die richtige Suchstrategie?
Vielen Dank für's Lesen! Bin für jede Hilfe dankbar!
Anbei ein bisschen Code.
Code: Alles auswählen
### Import
import pandas as pd
import os
## Variablen
home=os.path.abspath(".")
n=1
dat=1
## Festlegen der Spaltenüberschriften
column_names = ["Name","orga","met","konz","selbst","eng","tem","konf"]
files = os.listdir(home+"/data")
## Funktion lesen
def lesen(n):
dat=pd.read_csv(home+"/data/"+str(n)+".csv",
header=0,
index_col=0,
names=column_names)
return dat
### Daten lesen
while n <= (len(files)):
if n==1:
data = lesen(dat)
n=n+1
dat = dat +1
out = data
else:
data = lesen(dat)
dat = dat +1
out = out + data
n = n +1
###Berechnung der Mittelwerte
mittel = out/len(files)
mittel.head()
####Ausgabe des Ergebnisses
mittel.to_csv("Ergebnismittelwerte.csv")