Automatisierung mit Python: Ordnung im Downloads-Ordner

Schon eine Weile nervt mich die wenige Übersicht in meinem Download-Ordner. Ich habe daher dieses kleine Projekt aufgesetzt, dass basierend auf Dateityp nach Endung Download-Files in Unterordnern:

    • pdf
    • else
    • data
    • image
    • video
    • document
    • programming

sortiert. Außerdem wird als Präfix das aktuelle Datum nach Format: YYYY-MM-DD_ vorangesetzt. Technisch handelt es sich um eine Python Script auf Basis von watchdog. Dieses wird bei Systemstart durch einen Service manage-downloads.service in systemd gestartet. Dafür liegt im /lib/systemd/system eine Datei mit dem Namen anage-downloads.service.

Wenn ihr es ausprobieren wollt, findet ihr den Code und eine Anleitung zum Anpassen an euer System hier: https://github.com/genughaben/python-automation.

Wie man es auf einem Mac zum Laufen bekommt. werde ich noch ergänzen – sofern nicht jemand von euch schneller ist.

Weitere Ideen und Anregungen findet ihr hier:

How to add an new conda environment as kernel to jupyter?

Often I want to use newly created conda enviroments also from Jupyter. Therefore the enviroment needs to be added as kernel to Jupyter. You do that like so.

First make sure pip and ipykernel are installed / up-to-date.

> conda install pip
> conda install ipykernel

And then enter:

conda activate <env-to-add>
> python -m ipykernel install --user --name <env-to-add> --display-name "<env-to-add>"

Reference: https://ipython.readthedocs.io/en/stable/install/kernel_install.html

Zwei Spalten in Pandas addieren und dabei nans beachten via lamdba-Funktion mit Bedigung

Ihr wollte in eurem Dataframe zwei Spalten addieren und dabei nans ignorieren? D.h. ihr wollt a und b addieren, sofern a und b nicht None oder null sind und a, wenn a nicht None oder null aber b None oder null ist und sonst b in die neue Spalte schreiben?

Das geht so:

add_if_notna = lambda a, b: a+b if ~np.isnan(a) and ~np.isnan(b) else a if ~np.isnan(a) else b
df['new_col'] = df['col1'].combine(df['col2'],add_if_notna)

Wenn ihr alternativ die Spalten nur addieren wollt, wenn beide Werte ungleich null / None sind, dann geht das so:

add_if_notna = lambda a, b: a+b if ~np.isnan(a) and ~np.isnan(b) else None
df['new_col'] = df['col1'].combine(df['col2'],add_if_notna)