Schönheitsfehler

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
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

hi
in meinem code

Code: Alles auswählen

def undate(x):
    if isinstance(x, (int, float)):
        if not pd.notna(x):
            x = u''
    return x.strftime('%d.%m.%Y') if hasattr(x, 'strftime') else x

xlsx = pd.ExcelFile(input_file)
for sheet_name in xlsx.book.sheets():
    sheet = xlsx.parse(sheet_name.name, header=None)
    if not sheet.empty:
        update_sheet = sheet.applymap(undate)
werden in einem Excel-Sheet vorhandene Values in Strings umgewandelt und ggf. enthaltene Daten (Datums) in deutsche Form gebracht.
Alles läuft zwar wie es soll, aber in Pycharm läuchtet "x.strftime('%d.%m.%Y')" mit dem Hinweis: 'str' object is not callable
heller auf. Irgendwie stört mich das. Kann man das irgendwie beheben?
Sirius3
User
Beiträge: 18253
Registriert: Sonntag 21. Oktober 2012, 17:20

`not notna` ist für mich etwas viel Negierung, vor allem weil es mit math.isnan eine bekanntere Funktion gibt:

Code: Alles auswählen

def undate(x):
    if isinstance(x, (int, float)):
        if math.isnan(x):
            x = ""
    elif hasattr(x, 'strftime') 
        x = x.strftime('%d.%m.%Y')
    return x
Was da PyCharm für x rät, weiß keiner. Daher sind solche "Warnungen" meist nicht sehr hilfreich.
Antworten