2016-06-09 3 views
1

I Liste des Wörterbuch als unten Format habeListe des Wörterbuch in Python als HTML-Tabellenformat

[{'duration': 0.7, 'project_id': 3, 'resource': u'Arya Stark', 'activity': u'Development'}, 
{'duration': 0.9, 'project_id': 4, 'resource': u'Ned Stark', 'activity': u'Development'}, 
{'duration': 2.88, 'project_id': 7, 'resource': u'Robb Stark', 'activity': u'Development'}, 
{'duration': 0.22, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 0.3, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 2.15, 'project_id': 3, 'resource': u'Arya Stark', 'activity': u'Practise'}, 
{'duration': 3.35, 'project_id': 4, 'resource': u'Sansa Stark', 'activity': u'Development'}, 
{'duration': 2.17, 'project_id': 9, 'resource': u'Rickon Stark', 'activity': u'Development'}, 
{'duration': 1.03, 'project_id': 4, 'resource': u'Benjan Stark', 'activity': u'Design'}, 
{'duration': 1.77, 'project_id': 4, 'resource': u'Bran Stark', 'activity': u'Testing'}, 
{'duration': 1.17, 'project_id': 4, 'resource': u'Ned Stark', 'activity': u'Development'}, 
{'duration': 0.17, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 1.77, 'project_id': 3, 'resource': u'catelyn stark', 'activity': u'Development'}, 
{'duration': 0.3, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 0.45, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}] 

Alles, was ich brauche eine Tabelle in Python wie

report_table = """<table> 
......... 
........... 
.......... 
</table>""" 

So das Tabellenformat erstellen befestigt ist,

enter image description here 1) Es ist möglich, in das gewünschte Format zu bringen

2) Können wir Summenoperation innerhalb Wörterbuchdaten

+0

1) Ja. Sie können einfach eine HTML-Seite erstellen und Spalten und Zeilen nach Bedarf einfügen. 2) Ja, Sie können eine Summenoperation in einem Wörterbuch durchführen. –

+0

Antwort auf Frage 1 lautet: JA Antwort auf Frage 2 ist: JA (wenn ich es richtig verstanden) Zeigen Sie etwas Code, Mühe, genaue Spezifikation, wenn Sie mehr nützliche Antworten –

+0

Sicher möchte ich meinen Beitrag dazu hinzufügen –

Antwort

7

IIUC Hier ist eine Lösung pandas verwendet, ist:

import pandas as pd 
dict_data = [{'duration': 0.7, 'project_id': 3, 'resource': u'Arya Stark', 'activity': u'Development'}, 
{'duration': 0.9, 'project_id': 4, 'resource': u'Ned Stark', 'activity': u'Development'}, 
{'duration': 2.88, 'project_id': 7, 'resource': u'Robb Stark', 'activity': u'Development'}, 
{'duration': 0.22, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 0.3, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 2.15, 'project_id': 3, 'resource': u'Arya Stark', 'activity': u'Practise'}, 
{'duration': 3.35, 'project_id': 4, 'resource': u'Sansa Stark', 'activity': u'Development'}, 
{'duration': 2.17, 'project_id': 9, 'resource': u'Rickon Stark', 'activity': u'Development'}, 
{'duration': 1.03, 'project_id': 4, 'resource': u'Benjan Stark', 'activity': u'Design'}, 
{'duration': 1.77, 'project_id': 4, 'resource': u'Bran Stark', 'activity': u'Testing'}, 
{'duration': 1.17, 'project_id': 4, 'resource': u'Ned Stark', 'activity': u'Development'}, 
{'duration': 0.17, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 1.77, 'project_id': 3, 'resource': u'catelyn stark', 'activity': u'Development'}, 
{'duration': 0.3, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}, 
{'duration': 0.45, 'project_id': 9, 'resource': u'Jon Snow', 'activity': u'Support'}] 

df = pd.DataFrame(dict_data) 
dfg = df.groupby(['project_id','resource','activity']).sum() 
dfg.to_html('result.html') 

Wird eine html wie folgt produzieren:

enter image description here

Und eine andere Lösung unter Verwendung pandaspivot_table mit einem anderen Ergebnis:

enter image description here

das gesamte Projekt neu anordnen weise: die Spalten neu anordnen und Index eine gewünschte rusult zu erhalten.

import numpy as np 
pvt = pd.pivot_table(df, values=['duration'],index=['resource','activity'], columns=['project_id'], aggfunc=np.sum,margins=True, fill_value=0) 

enter image description here

+0

Können Sie mir bitte zeigen, wie Sie die Projekt weise Summierung bekommen, zum Beispiel die Gesamtdauer in project_id 3 ist Summe (2.85 + 1.77) ist 4.62. –

+0

Die Lösung wurde aktualisiert. Sie können den Index und die Spalten für ein gewünschtes Ergebnis neu anordnen. – Abbas

Verwandte Themen