2016-05-10 8 views
-1

Ich habe einen Datensatz, der verschiedene Wochen und die neuen Fälle von Dengue für diese spezifische Woche aufzeichnet, und ich soll die Infektionsrate und Wiederfindungsrate für jede Woche berechnen. Die Infektionsrate kann berechnet werden, indem die Anzahl der neu infizierten Patienten durch die anfällige Population für diese Woche dividiert wird, während die Wiederfindungsrate berechnet werden kann, indem die Anzahl der neu gewonnenen Patienten durch die infizierte Population für diese Woche dividiert wird. Die Infektionsrate ist relativ einfach, aber für die Genesungsrate muss ich berücksichtigen, dass infizierte Patienten genau 2 Wochen benötigen, um sich zu erholen und ich feststecke. Jede mögliche Hilfe würdePython-Datensatz-Berechnungen

t_pop = 4*10**6 
s_pop = t_pop 
i_pop = 0 
r_pop = 0 
weeks = 0 

#Infection Rate 
for index, row in data.iterrows(): 
    new_i = row['New Cases'] 
    s_pop -= new_i 
    weeks += 1 
    infection_rate = float(new_i)/float(s_pop) 
    print('Week', weeks, ':' ,infection_rate) 

* Hinweis verstanden werden: t_pop an der Gesamtbevölkerung bezieht, die wir annehmen, 4 Millionen sein, s_pop zur Bevölkerung im Risiko, an Dengue bezieht und i_pop bezieht sich auf infizierten Population

+2

Dies ist eine berechtigte Frage, aber es ist nicht in der Maschine per se zu lernen, ist es ... – icedwater

+0

@icedwater Teil einer größeren Frage über maschinelles Lernen – user3393463

+0

Für einfache (rechteckige) Datenmanipulation werfen Sie einen Blick auf Python Pandas. Es hat eine Funktion namens 'shift', die dir weiterhelfen kann: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.shift.html – Tim

Antwort

0

Sie könnten erstellen ein Wörterbuch, um die Daten für jede Woche zu speichern, und verwenden Sie es dann, um zu verweisen, wenn Sie die Wiederherstellungsrate berechnen müssen. Zum Beispiel:

dengue_dict = {} 
dengue_dict["Week 1"] = {"Infection Rate": infection_rate, "Recovery Rate": None} 

Ich benutze keine auf den ersten, weil es keine Wiederherstellungsrate gibt, bis mindestens zwei Wochen vergangen sind. Später können Sie entweder Wochen aktualisieren oder sie einfach hinzufügen. Hier ist ein Beispiel für Woche 3:

recovery_rate = dengue_dict["Week 1"]["Infection Rate"]/infection_rate 

und aktualisieren Sie dann den Eintrag im Wörterbuch:

dengue_dict["Week 3"]["Recovery Rate"] = recovery_rate