2017-04-06 2 views
0

Ich habe eine Frage in Ausgabe in eine CSV-Datei in Python:Python Ausgabe CSV-Datei

Code wie unten angegeben:

 import numpy as np 
    import scipy.stats as stats 
    from scipy.stats import poisson, norm 

    # Read the csv file and obtain corresponding parameter mu, cs and co. 

    import csv 
    with open('r1.csv', 'r') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print row 
    mu = row[0] 
    cs = row[1] 
    co = row[2] 

    mu = float(mu) 
    cs = float(cs) 
    co = float(co) 

    # Generate a Poisson Distribution and 

    G = poisson(mu) 
    p = G.pmf(np.arange(3*mu)) 

    # Define Z(Q) for the total cost estimation 

    def Z(Q): 
     ES = sum(i*p[i] for i in range(len(p))) 
     return cs*max((Q-ES), 0) + co*max((ES-Q), 0) 

    # Obtain Qstar 

    Qstar = np.ceil(poisson.ppf(co/(cs+co), mu))-1 
    Qstar = int(np.float64(Qstar).item()) 

Dieser Teil des Code funktioniert gut für mich und ich habe Qstar = 5 in diesem einfachen Beispiel. Wie könnte ich es in eine CSV-Datei ausgeben?

ORDER_NUMBER

Ich habe den folgenden Code Qstar zu nennen:

with open('test.csv', 'wb') as fp: 
     a = csv.writer(fp, delimiter=',') 
     data = [['Order_Number'],['Qstar']] 
     a.writerows(data) 

Aber es scheint, dass ich erhalten nur

ORDER_NUMBER

Qstar

Das nhow könnte ich "Qstar" richtig nennen?

Vielen Dank!

+0

die Zitate aus fahren um Qstar, und Sie werden die Variable in Qstar gehalten bekommen. –

+0

Danke! @MohammadAthar – Chenxi

Antwort

0

Try this:

with open('test.csv', 'wb') as fp: 
      a = csv.writer(fp, delimiter=',') 
      data = [['Order_Number'],[Qstar]] 
      a.writerows(data) 
0

Mit einfachen Anführungszeichen um Qstar sagen Sie Python, eine Zeichenfolge mit dem Wert 'Qstar' zu erstellen. Um den Wert der Variablen Qstar ausgeben, verwenden Sie einfach nicht die einfachen Anführungszeichen:

with open('test.csv', 'wb') as fp: 
    a = csv.writer(fp, delimiter=',') 
    data = [['Order_Number'],[Qstar]] 
    a.writerows(data) 
+0

Danke! Das ist es @dueck – Chenxi

0

Das ist, weil Sie Daten-Array füttern mit Strings anstelle von Zahlen. Entfernen Sie die einfachen Anführungszeichen von Qstar und Order_number.

+0

Vielen Dank! @ Sahin – Chenxi