Abschnitt aus DataFrame erhalten
Verfasst: Montag 17. Oktober 2022, 14:17
Hallo!
Ich brauche Rat. Und zwar importiert mein Programm eine Excel-Datei von diesem Format (in Gelb stehen zur Hilfe die Zeilen- und Spaltenindizes):

In den grünen Spalten stehen jeweils irgendwelche mehrfach vorkommenden Dinge, in Spalte j beispielsweise b, a, b, b, d, a, e, ... Der Anwender soll nun eine der grünen Spalten auswählen, z.B. Spalte j. Dann soll mein Programm jeweils den Mittelwert aller Zeiten berechnen, die in Spalte j denselben Eintrag haben, also Mittelwert aller Zeiten mit Eintrag "a", Mittelwert aller Zeiten mit Eintrag "b" usw.
Meine Idee/mein Minimalprogramm:
Ab hier hapert es. Angenommen, ich will alle Zeiten, die in Spalte j ein "e" stehen haben ("e" hätte in der eintraege-Liste den Index 4). Folgendes funktioniert dann leider nicht:
Es kommt die Fehlermeldung "TypeError: 'method' object is not subscriptable". Was mache ich falsch? Danke für eure Hilfe!
Ich brauche Rat. Und zwar importiert mein Programm eine Excel-Datei von diesem Format (in Gelb stehen zur Hilfe die Zeilen- und Spaltenindizes):

In den grünen Spalten stehen jeweils irgendwelche mehrfach vorkommenden Dinge, in Spalte j beispielsweise b, a, b, b, d, a, e, ... Der Anwender soll nun eine der grünen Spalten auswählen, z.B. Spalte j. Dann soll mein Programm jeweils den Mittelwert aller Zeiten berechnen, die in Spalte j denselben Eintrag haben, also Mittelwert aller Zeiten mit Eintrag "a", Mittelwert aller Zeiten mit Eintrag "b" usw.
Meine Idee/mein Minimalprogramm:
Code: Alles auswählen
from numpy import *
import pandas as pd
pfad = str(input("Pfad der Excel-Datei: "))
data = pd.read_excel(pfad, header=0)
header = data.columns.values.tolist()
print("Spalte wählen: ")
for i in range(1, len(header)):
print(f"{i} {header[i]}")
spaltenindex = int(input("Nummer des Spalte: "))
# Die verschiedenen Einträge der gewählten Spalte als Liste
eintraege = list(set(data.iloc[:,spaltenindex]))
# Die "Zeit"-Spalte
zeit = data.iloc[:,0]
Code: Alles auswählen
zeiten_e = zeit[where(data.iloc[:,spaltenindex] == eintraege[4])]
print(zeiten_e)