Exceldaten -verarbeiten-

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dieter52
User
Beiträge: 3
Registriert: Mittwoch 25. Oktober 2023, 17:09

Python Neuling
Möchte mit >pandas> eine Exceldatei ausgewählte Zellen aller Zeilen lesen

-----
df = pd.read_excel(excel_datei, usecols=["Feld 1", "Feld 2", "Feld 3", "Feld 4", "Feld 5","Feld 6"])
for index, row in dataframe.iterrows():
for col in row:
?????
-----
Die selektierten Daten sollen in eine andere Exceltabelle übertragen werden, aber nicht 1 : 1, sondern beispielsweise in veränderter Reihenfolge Feld 1, Feld 6, Feld 4 usw.

Kurz: Ich vermute mal, dass ich die gelesenen Daten in irgendeiner Form beim Lesezugiff in Variablen zwischenspeichern muss......?

Hat jemand eine Idee?
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@dieter52: Wenn man Schleifen über DataFrames schreibt, macht man in der Regel etwas falsch. Pandas benutzt man ja gerade weil das effizienter ist als Schleifen zu schreiben. Umsortieren der Spalten geht beispielsweise in dem man die bei `usecols` in der gewünschten Reihenfolge angibt.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
dieter52
User
Beiträge: 3
Registriert: Mittwoch 25. Oktober 2023, 17:09

@_blackjack_
Die Schleifen sollten mir die Gelegenheiten geben, die einzelnen Felder Satz für Satz und Feld für Feld verarbeitbar zu machen, z.B. (oben nicht so deutlich erwähnt) die Strings aus Feld 7 + Feld 8 + Feld 9 (Herkunftstabelle) zu einem (1) Feld x in der Zieltabelle umzusetzen.
Wie gesagt Neuling, der sich an die Programmierung (Basic vor 40 Jahren) erinnert. :-)
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das war schon klar. Aber in Pandas würdest du gleich ganze Spalten zu einer neuen Spalte verrechnen lassen. Genau da ist seine Stärke, und dann auch deutlich schneller als von Hand gemacht.
Benutzeravatar
noisefloor
User
Beiträge: 4194
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

simples Beispiel dazu:

Code: Alles auswählen

>>> import pandas as pd
>>> d = {'col1': [1, 2], 'col2': [3, 4]}
>>> df = pd.DataFrame(data=d)
>>> df
   col1  col2
0     1     3
1     2     4
>>> df['col3'] = df['col1'] + df['col2']
>>> df
   col1  col2  col3
0     1     3     4
1     2     4     6
>>>
Pandas ist übrigens sehr umfassend dokumentiert (https://pandas.pydata.org/docs/user_guide/index.html und in der Doku sind auch ein paar Tutorials für Einsteiger. Plus es gibt im Netz ein paar ziemlich gute und detaillierte Seiten, die alle möglichen Funktionen von Pandas im Detail anhand von Beispielen erklären. Tipp: mit englischen Suchbegriffen arbeiten bringt zumindest in dem Bereich nach meiner Erfahrung bessere Suchtreffer.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ich möchte Unterstreichen was noisefloor geschrieben hat, und hinzufügen ein Python-Grundlagentutorial davor durchzuarbeiten. In der Python-Dokumentation gibt es beispielsweise so ein Tutorial. Ich habe auch vor langer Zeit mit BASIC angefangen und mag Python auch weil es ein paar Parallelen/Ähnlichkeiten gibt, wie die Möglichkeit in einer Python-Shell einfach mal live mit Objekten und Ausdrücken herum zu spielen um Sachen auszuprobieren. Oder das man keine Typen deklarieren muss und keinen umständlichen statischen Übersetzungsschritt zwischen Quelltext bearbeiten und Programm ausführen hat.

Es gibt natürlich auch Unterschiede. Beispielsweise das man nicht auf die Grunddatentypen beschränkt ist, die die Sprache mitbringt, sondern sich eigene Datentypen programmieren kann, beziehungsweise welche Benutzen kann, die von anderen Programmierern stammen. Und das damit auch Rechenoperationen die Bedeutung haben, welche die Programmierer der beteiligten Datentypen festlegen. So beispielsweise bei Pandas das man ganze Spalten addieren kann, und eine ganze Menge anderer Sachen mehr.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
dieter52
User
Beiträge: 3
Registriert: Mittwoch 25. Oktober 2023, 17:09

@ _deets_
@ noisefloor
@ _blackjack_

Vielen Dank für die Erleuchtung!
Antworten