Seite 1 von 1

gerade - ungerade Zahlen

Verfasst: Dienstag 30. April 2019, 09:05
von Anfänger!
Hallo zusammen.

Ich habe eine csv Liste mit den Spalten: Name, Vorname, Alter, Wohnort, Geschlecht
habe die Datei wie folgt geöffnet:

Frage:
1. Würdet ihr die Datei aus so öffnen? Weil Titelzeilen (Name, Vorname...) 2x ausgegeben wird.
2. Ich soll all die Zeilen ausgeben in denen der Alter (in der Spalte Alter) eine runde Zahl entspricht! Wenn es ungerade oder ein leeres Feld in der Spalte Alter ist, dann soll die ganze Zeile nicht ausgegeben werden.
Bitte Code gerne in pandas und roh Python falls es geht. Ansonsten nur in pandas.
Herzlichen Dank und beste Grüsse!

Code: Alles auswählen

import pandas as pd
df = pd.read_csv('Aufgabe2.csv', delimiter=';',
names = ['Name', 'Vorname', 'Alter', 'Wohnort', 'Geschlecht',])
print(df)

      Name  Vorname  Alter    Wohnort  Geschlecht
0     Name  Vorname  Alter    Wohnort  Geschlecht
1      NaN    André     55     Zürich           M
2   Müller      NaN     20     Genève           F
3   Bäcker    Jüdit    NaN       Äsch           F
4   Müster     Fäbu     29        NaN           M
5   Strähl     Ändu     48  Ätigkofen         NaN
6      NaN    André     55     Zürich           M
7   Müller      NaN     20     Genève           F
8   Bäcker    Jüdit    NaN       Äsch           F
9   Müster     Fäbu     29        NaN           M
10  Strähl     Ändu     48  Ätigkofen         NaN

Re: gerade - ungerade Zahlen

Verfasst: Dienstag 30. April 2019, 11:42
von bb1898
Leider kenne ich mich mit pandas überhaupt nicht aus. Trotzdem habe ich eine Vermutung zu der doppelten Überschriftszeile: wenn die Spaltenüberschriften so auch in der Datei selber stehen, dann lass den "names"-Parameter probehalber einfach mal weg:

Code: Alles auswählen

df = pd.read_csv('Aufgabe2.csv', delimiter=';')
So würde das jedenfalls mit dem csv-Modul gemacht.

Mir wird aus Deiner Beschreibung, zusammen mit der Überschrift, nicht klar, welche Zeilen denn nun ausgegeben werden sollen: die mit geradem Alter (das wären nur 20 und 48, beide mehrfach) oder die mit einer "runden Zahl" - das wäre noch zu definieren: teilbar durch 10 (also nur die 20)? Teilbar durch 5 (dann wäre auch die 55 dabei)?

Re: gerade - ungerade Zahlen

Verfasst: Dienstag 30. April 2019, 11:56
von ThomasL
Wenn man Fragen zu einer Methode hat, dann schaut man sich vielleicht als erstes die Dokumentation dazu an?
https://pandas.pydata.org/pandas-docs/s ... d_csv.html

Sich den Parameter header= anzuschauen wäre da mein Tipp.

Das Selektieren klappt dann z.B. so:

Code: Alles auswählen

df[(df["Alter"] % 2) == 0]

Re: gerade - ungerade Zahlen

Verfasst: Dienstag 30. April 2019, 12:18
von Anfänger!
@ThomasL: es funktioniert, siehe meine Ausgabe :D Wäre gerne so ein Profi wie Du! 1000 Dank!

Code: Alles auswählen

Name	Vorname	Alter	Wohnort	Geschlecht
1	Müller	NaN	20.0	Genève	F
4	Strähl	Ändu	48.0	Ätigkofen	NaN
6	Müller	NaN	20.0	Genève	F
9	Strähl	Ändu	48.0	Ätigkofen	NaN