Python-Programm, das die Zeitnutzung aus icalendar-Daten aggregiert

Paketinstallation

Zuerst installieren Sie icalendar ist.

Erstellen Sie als Nächstes die Elemente, die für die Analyse in Excel verwendet werden sollen.

Treffen Materialerstellung Email
Morgentliches Treffen Vorbereitung des Besprechungsmaterials E-Mail-Check am Morgen
Mittagstreffen Materialerstellung melden Überprüfen Sie die Post mittags
Nachttreffen Nachtpostcheck

Geben Sie in der ersten Zeile das Element der Einheit ein, die Sie analysieren möchten, und in der zweiten und den folgenden Zeilen die Unterelemente jeder Analyseeinheit. Dieses Unterelement wird zum Suchschlüsselwort für Iicalendar-Daten.

Ich werde es auch Elementtabelle .xlsx nennen und es speichern.

Bereiten Sie als Nächstes die zu analysierenden icalendar-Daten vor.

Ich denke, es gibt verschiedene Möglichkeiten, sich vorzubereiten. Das Exportieren aus Outlook ist einfach, nicht wahr?

Als nächstes kommt die Quelle.

Um ehrlich zu sein, finde ich es überhaupt nicht elegant, aber da ich Anfänger bin, vergib mir bitte oder gib mir eine Anleitung.

Verschwendung von Erinnerung? Ich denke, es gibt viele Dinge, wie Doppelschleifen nicht elegant sind, also bitte kommentieren.

import numpy as np
import pandas as pd
import icalendar as ic
from datetime import timedelta


def calculate_time(event):
    start = event['DTSTART'].dt
    end = event['DTEND'].dt

    time = end -start

    return time.total_seconds() / 3600


def main():
    labels = pd.read_excel('./Artikelliste.xlsx')
    print(labels)

    file = open('./testdata.ics', 'r', encoding='utf-8')
    cal = ic.Calendar.from_ical(file.read())

    data = pd.DataFrame(np.zeros((labels.shape[0], labels.shape[1])))
    data.columns = label.columns

    for event in cal.walk('vevent'):
        time = calculate_time(event)
        summary = str(event.get('summary'))

        for i in range(0, labels.shape[0]):
            for j in range(0, labels.shape[1]):
                if str(labels.iloc[i, j]) in summary:
                    data.iloc[i, j] = data.iloc[i, j] + time


    print(data)

if __name__ == '__main__':
    main()

Wenn Sie nicht wissen, was Sie tun, fragen Sie bitte. Ich habe es noch nicht grafisch dargestellt, aber an diesem Punkt sollte es einfach grafisch sein.

Ein Beispiel für die grafische Darstellung

Ich werde es zu einem Kreisdiagramm machen.

data.sum().plot.pie(legend=False, autopct="%.1f%%", textprops={'fontproperties': fp, 'fontsize':20})
plt.axis('equal')

Legend = False verhindert lästige Legenden und zeigt den Prozentsatz als autopct = "% .1f %%" an.

Es hat lange gedauert, den Punkt bei der Verwendung japanischer Schriftarten herauszufinden. So schreiben Sie textprops = {'fontproperties': fp, 'fontsize': 20}). Ich konnte keine Informationen zum Angeben einer japanischen Schriftart finden, wenn ein Kreisdiagramm mit Python-Plot verwendet wurde, und es dauerte lange.

plt.axis ('gleich') verhindert, dass der Kreisgraph zusammenfällt.

Verweise

・ Https://gist.github.com/lukasmartinelli/9021795

Recommended Posts

Python-Programm, das die Zeitnutzung aus icalendar-Daten aggregiert
Empfangen Sie Wörterbuchdaten von Python-Programmen mit AppleScript
Python-Programm, das ical-Daten in Text konvertiert
Ein Memo, das mit Python & Spark Daten aus dashDB liest
[Python-Algorithmus] Ein Programm, das einige deutsche Antworten aus einer Suche mit Tiefenpriorität ausgibt
[Python] Ein Programm, das Treppen mit # erstellt
Ein Programm, das Python zum Abspielen von Junk verwendet
[Python] Ein Programm, das die Partitur rundet
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Ein Programm, das doppelte Anweisungen in Python entfernt
"Python Kit", das Python-Skripte von Swift aufruft
Extrahieren Sie mit Python Daten von einer Webseite
Ein Programm, das von Python zu einem bestimmten Zeitpunkt eine feste E-Mail-Menge sendet
[Python] Ein Programm, das die Anzahl der Täler zählt
Merkmalsmenge, die aus Zeitreihendaten extrahiert werden kann
Geben Sie die Zeit ab dem Start des Programms in Python aus
Aus einem Buch, das Programmierer lernen können ... (Python): Zeiger
Erstellt eine Python-Bibliothek DateTimeRange, die Zeitbereiche verarbeitet
Vom Kauf eines Computers bis zur Ausführung eines Programms auf Python
Ein Server, der POST-Daten mit flask / python wiedergibt
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
Programm, das die CSV-Daten der Transaktionshistorie der SBI Securities-Aktie zusammenfasst [Python3]
"Abrufen von Zeitreihendaten von k-db.com mit Python" Memo zur Erstellung der Programmumgebung
Vorhersage aus verschiedenen Daten in Python mit dem Zeitreihen-Vorhersage-Tool Facebook Prophet
Python-Programm von "Buch, das schwieriges Programmieren leicht lehrt"
Ein Allzweckprogramm, das Linux-Befehlszeichenfolgen mit Python formatiert
Veröffentlichung einer Bibliothek, die Zeichendaten in Python-Bildern verbirgt
Aus einem Buch, das Programmierer lernen können ... (Python): Über das Sortieren
So führen Sie ein Python-Programm in einem Shell-Skript aus
Ein Programm, das bestimmte Zeichen aus dem eingegebenen Text entfernt
Python-Bedingungsextraktion aus der Liste, die ich oft vergesse
Ich habe in Python ein Programm erstellt, das die 1-Minuten-Daten von FX auf eine beliebige Zeit (1 Stunde usw.) ändert.
Ich habe versucht, "ein Programm, das doppelte Anweisungen in Python entfernt"
[Python] Ein Programm, das durch Kombinieren von Ganzzahlen ein zweidimensionales Array erstellt
Bibliothek tsfresh, die Features automatisch aus Zeitreihendaten extrahiert
[Python] Zeichnen Sie Zeitreihendaten
[Python] Ein Programm, das die häufigsten Vogeltypen findet
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
Erstellen Sie mit turicreate eine API, die Daten aus einem Modell zurückgibt
[numpy] Erstellen Sie eine sich bewegende Fenstermatrix aus mehrdimensionalen Zeitreihendaten
Aus einem Buch, das der Programmierer lernen kann ... (Python): Finden Sie den häufigsten Wert
Aus einem Buch, das Programmierer lernen können ... (Python): Überprüfung von Arrays
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst
Ein Programm, das bestimmt, ob eine in Python eingegebene Zahl eine Primzahl ist
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Aus einem Buch, das Programmierer lernen können (Python): Statistischer Verarbeitungsabweichungswert
Python: Tags von HTML-Daten ausschließen
Berühren Sie Python-Objekte in Elixir
Hit Schatzdaten von Python Pandas
Python: Zeitreihenanalyse: Vorverarbeitung von Zeitreihendaten
Python / Machen Sie ein Diktat aus einer Liste.
Beim Schreiben eines Programms in Python
2. Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (2. Grundlagen des Python-Programms)
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
[Python] Ein Programm, das ein Paar findet, das durch einen bestimmten Wert geteilt werden kann
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet