Die Mathe-Redaktion - 24.05.2019 15:32 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Sept.
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 415 Gäste und 15 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Python: Einlesen und bearbeiten einer txt-Datei
Druckversion
Druckversion
Autor
Universität/Hochschule J Python: Einlesen und bearbeiten einer txt-Datei
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 128
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-04-19


Ich habe eine txt-Datei mit 32 Spalten und einer Vielzahl an Reihen. Die Spalten sind durch Tab-Stopps voneinander getrennt.

Ich möchte gerne mithilfe eines Python-Skripts diese Datei einlesen und jede zweite Spalte zu einer großen Liste zusammenfügen.
import pandas as pd
data = pd.read_csv(filename, sep='\t')

Das einlesen klappt problemlos. Allerdings weiß ich nicht wie ich jetzt aus jeder zweiten Spalte eine große Liste erstelle.
Kann mir jemand helfen?



  Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 139
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2019-04-19


Hi,
zumindest mir ist nicht klar was du erreichen möchtest. Am besten immer Beispieldaten und das erhoffte Ergebnis mit angeben.
Gruß



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 128
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2019-04-19


hey,

als Beispiel sind hier die ersten drei Zeilen meiner txt-Datei:
txt
5.35	0.35	5.61	-0.39	6.84	-0.16	9.21	1.21	8.87	-0.13	10.62	0.62	12.11	1.11	11.8	-0.2	14.03	1.03	13.39	-0.61	15.14	0.14	16.64	0.64	17.2	0.2	18.08	0.08	19.28	0.28	20.15	0.15
5.45	0.45	5.52	-0.48	6.84	-0.16	9.33	1.33	8.87	-0.13	11.49	1.49	12.23	1.23	11.92	-0.08	14.03	1.03	13.82	-0.18	15.16	0.16	16.24	0.24	16.34	-0.66	18.09	0.09	18.81	-0.19	20.17	0.17
5.45	0.45	5.51	-0.49	6.96	-0.04	9.21	1.21	8.87	-0.13	10.62	0.62	12.11	1.11	11.9	-0.1	14.05	1.05	13.82	-0.18	15.16	0.16	16.24	0.24	16.34	-0.66	18.09	0.09	18.81	-0.19	20.17	0.17

Ich möchte jetzt eine Liste erstellen. Und diese Liste soll folgende Einträge enthalten:
Zunächst die Einträge der zweiten Spalte:
txt
[0.35, 0.45, 0.45]
Dann hänge ich die Einträge der vierten Spalte mit an:
txt
[0.35, 0.45, 0.45, -0.39, -0.48, -0.49]
Als nächstes hänge ich die Einträge der sechsten Spalte mit an, usw.

Diese Daten möchte ich dann weiter verarbeiten. Ich möchte eine Kerndichte-Schätzung aus diesen Daten erzeugen. Aber das ist dann der nächste Schritt. Zunächst einmal muss ich sie richtig einlesen.




  Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 139
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2019-04-19


Hi,
z.B. so:
python
import pandas as pd
df = pd.DataFrame(np.arange(3*15).reshape(3, -1))
print(df.iloc[:, 1::2].values.reshape(-1))

Gruß



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 128
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2019-04-19


hey,

vielen Dank dir!

In deinem Beispiel wird die Liste aber nur gedruckt, während ich sie in einer Variablen speichern möchte, um damit weiter arbeiten zu können.

Ich habe selbst noch etwas recherchiert, und meine, dass dieser Code funktionieren sollte:
python
df = pd.read_csv(filename, sep = '\t')
df.iloc[:, 1::2].values.T.ravel()
Vermutlich verstehst du hier etwas besser, was genau passiert:
Innerhalb von `iloc[:, 1::2]` , gibt die Zahl nach dem zweiten Doppelpunkt die Schrittweite an?
Ich verstehe, dass mittels `values` die Indizes weg gelassen werden. Und mittels `ravel()` werden alle Werte, die `iloc[:, 1::2]` zurück liefert, in eine Liste geschrieben. Aber was bewirkt das `T` ?



  Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 139
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2019-04-20


Hi,
- in python ist üblich: [start:stop:schrittweite]
- pandas verwendet intern np.array als Datenstruktur, die man mit .values bekommt.
- .T angewendet auf einen np.array bedeutet transpose.
- ravel macht nicht immer eine Kopie.  
Gruß



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.01.2018
Mitteilungen: 128
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, vom Themenstarter, eingetragen 2019-04-20


perfekt. Vielen, vielen Dank!




  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7 hat die Antworten auf ihre/seine Frage gesehen.
Lucky_7 hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]