Programme Python qui agrège l'utilisation du temps à partir des données icalendar

Installation du package

Tout d'abord, pip installez icalendar est.

Ensuite, créez les éléments à utiliser pour l'analyse dans Excel.

Réunion Création de matériel Email
Réunion en matinée Préparation du matériel de réunion Vérification des e-mails le matin
Déjeuner de travail Signaler la création de matériel Vérifier le courrier à midi
Réunion de nuit Vérification du courrier de nuit

Entrez l'élément de l'unité que vous souhaitez analyser sur la première ligne et les sous-éléments de chaque unité d'analyse sur la deuxième ligne et les suivantes. Ce sous-élément devient le mot-clé de recherche pour les données icalendar.

Je vais également le nommer table d'éléments .xlsx et l'enregistrer.

Ensuite, préparez les données icalendar à analyser.

Je pense qu'il y a différentes manières de se préparer. L'exportation depuis Outlook est facile, n'est-ce pas?

Vient ensuite la source.

Pour être honnête, je ne pense pas que ce soit élégant du tout, mais pardonnez-moi parce que je suis un débutant, ou s'il vous plaît, enseignez à quelqu'un.

Perte de mémoire? Je pense qu'il y a beaucoup de choses comme les doubles boucles ne sont pas élégantes, alors veuillez commenter.

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('./Liste des articles.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()

Si vous ne savez pas ce que vous faites, veuillez demander. Je ne l'ai pas encore tracé, mais à ce stade, il devrait être facile à tracer.

Un exemple de graphique

Je vais en faire un graphique circulaire.

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

Legend = False empêche les légendes ennuyeuses et affiche le pourcentage comme autopct = "% .1f %%".

Le fait d'utiliser des polices japonaises était qu'il fallait du temps pour savoir comment écrire textprops = {'fontproperties': fp, 'fontsize': 20}). Je n'ai pas trouvé d'informations sur la façon de spécifier une police japonaise lors de l'utilisation d'un graphique circulaire avec un tracé python, et cela a pris beaucoup de temps.

plt.axis ('equal') empêche le graphique circulaire de s'effondrer.

Les références

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

Recommended Posts

Programme Python qui agrège l'utilisation du temps à partir des données icalendar
Recevez des données de dictionnaire à partir de programmes Python avec AppleScript
Programme Python qui convertit les données ical en texte
Un mémo qui lit les données de dashDB avec Python et Spark
[Algorithme Python] Un programme qui génère des réponses en allemand et en allemand à partir de la recherche de priorité en profondeur
[Python] Un programme qui crée des escaliers avec #
Un programme qui utilise Python pour lire des fichiers indésirables
[Python] Un programme qui arrondit le score
Obtenez des données de séries chronologiques de k-db.com avec Python
Un programme qui supprime les instructions en double en Python
"Kit Python" qui appelle des scripts Python depuis Swift
Extraire des données d'une page Web avec Python
Un programme qui envoie une quantité fixe de courrier à un moment spécifié par Python
[Python] Un programme qui compte le nombre de vallées
Quantité d'entités pouvant être extraite des données de séries chronologiques
Affiche l'heure à partir du moment où le programme a été lancé en python
D'un livre que les programmeurs peuvent apprendre ... (Python): Pointer
Création d'une bibliothèque Python DateTimeRange qui gère les plages horaires
De l'achat d'un ordinateur à l'exécution d'un programme sur python
Un serveur qui fait écho aux données POSTées avec flask / python
[Python] Un programme qui compare les positions des kangourous.
Programme qui résume les données csv de l’historique des transactions de l’action SBI Securities [Python3]
"Obtenir des données de séries chronologiques de stock à partir de k-db.com avec Python" Mémo de création d'environnement de programme
Prédire à partir de diverses données en Python à l'aide de l'outil de prédiction de séries chronologiques Facebook Prophet
Programme Python du "Livre qui enseigne facilement la programmation difficile"
Un programme polyvalent qui formate les chaînes de commande Linux avec python
Publication d'une bibliothèque qui masque les données de caractères dans les images Python
À partir d'un livre que les programmeurs peuvent apprendre ... (Python): À propos du tri
Comment exécuter un programme Python à partir d'un script shell
Un programme qui supprime des caractères spécifiques du texte saisi
python Extraction de condition de la liste que j'oublie souvent
J'ai créé un programme en Python qui change les données de 1 minute de FX en une heure arbitraire (1 heure, etc.)
J'ai essayé "un programme qui supprime les déclarations en double en Python"
[Python] Un programme qui crée un tableau à deux dimensions en combinant des entiers
Bibliothèque tsfresh qui extrait automatiquement les caractéristiques des données de séries chronologiques
[Python] Tracer des données de séries chronologiques
[Python] Un programme qui trouve les types d'oiseaux les plus courants
Un script python qui convertit les données Oracle Database en csv
Créer une API qui renvoie les données d'un modèle à l'aide de turicreate
[numpy] Créer une matrice de fenêtre mobile à partir de données de séries chronologiques multidimensionnelles
À partir d'un livre que le programmeur peut apprendre ... (Python): trouver la valeur la plus fréquente
À partir d'un livre que les programmeurs peuvent apprendre ... (Python): examen des tableaux
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Une fonction qui mesure le temps de traitement d'une méthode en python
[Ev3dev] Créez un programme qui capture LCD (écran) en utilisant python
Un programme qui détermine si un nombre entré en Python est un nombre premier
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
À partir d'un livre que les programmeurs peuvent apprendre (Python): valeur de l'écart de traitement statistique
Python: exclure les balises des données html
Toucher les objets Python d'Elixir
Frappez les données du trésor de Python Pandas
Python: analyse des séries chronologiques: prétraitement des données des séries chronologiques
Obtenir des données de Quandl en Python
python / Créer un dict à partir d'une liste.
Lors de l'écriture d'un programme en Python
2.Faites un arbre de décision à partir de 0 avec Python et comprenez-le (2. Bases du programme Python)
[Python] Un programme qui calcule le nombre de segments de chocolat qui remplissent les conditions
[Python] Un programme qui trouve une paire qui peut être divisée par une valeur spécifiée
[Python] Un programme qui calcule le nombre de chaussettes jumelées