Tout d'abord, pip installez icalendar est.
Réunion | Création de matériel | |
---|---|---|
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.
Je pense qu'il y a différentes manières de se préparer. L'exportation depuis Outlook est facile, n'est-ce pas?
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.
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.
・ Https://gist.github.com/lukasmartinelli/9021795
Recommended Posts