Zuerst installieren Sie icalendar ist.
Treffen | Materialerstellung | |
---|---|---|
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.
Ich denke, es gibt verschiedene Möglichkeiten, sich vorzubereiten. Das Exportieren aus Outlook ist einfach, nicht wahr?
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.
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.
・ Https://gist.github.com/lukasmartinelli/9021795