ich habe mich nun länger nicht mehr hier blicken lassen, da ich beruflich ziemlich viel zu tun habe und Python ja leider nur mal am Wochenende oder im Urlaub läuft.
Die meisten Probleme auf, die ich gestoßen bin, konnte ich auch mit goolge/nachdenken lösen und so kommt es nun, dass ich mich erst jetzt mal wieder hier melde.
Ziel ist, aus aktuellem Anlass einen Jungs-Namen zu finden. Da dies zu allerhand Diskussionen führte, kam mir der Gedanke, das algorithmisch zu lösen, denn es gibt jede Menge Vornamen und da eine Auswahl zu treffen, ist eine ganz schöne Arbeit.
So hier mal mein vorläufiger Code:
Code: Alles auswählen
import pandas as pd
from pathlib import Path
BASE_PATH = Path("Daten", "Namen")
df = pd.read_csv('https://raw.githubusercontent.com/fxnn/vornamen/master/Vornamen_Koeln_2017.csv')
df_m = df[df.geschlecht == "m"].copy()
df_m["Erster_Buchstabe"] = df_m["vorname"].str[0:1]
df_m["Letzter_Buchstabe"] = df_m["vorname"].str[-1:]
df_m["Laenge"] = df_m["vorname"].map(len)
df_m = df_m[df_m["Letzter_Buchstabe"] == "o"]
BASE_PATH.mkdir(parents=True, exist_ok=True)
df_m.to_csv(BASE_PATH / "ergebnis.csv", sep=';')
print(df_m)
print(df_m.dtypes)
Code: Alles auswählen
File "pandas\_libs\lib.pyx", line 2859, in pandas._libs.lib.map_infer
TypeError: object of type 'float' has no len()
viewtopic.php?p=393255#p393255
Es mag sein, dass ich die Fehlermeldung falsch lese. Aber wieso denkt er dass "vorname" ein float sei?
Mit print(df_m.dtypes) hatte ich mir mal die Datentypen der Spalten ausgeben lassen. Dort ist "vorname" vom Typ "object".
Kann mir jemand einen kleinen Tipp geben, was ich falsch mache?
Gerne auch Verbesserungsvorschläge zum Code allgemein.
liebe Grüße