Python的输出到CSV文件

问题描述:

我在输出问题Python中的CSV文件:Python的输出到CSV文件

代码如下:

 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()) 

这部分代码工作正常,我和我QSTAR = 5在这个简单的例子。我怎样才能把它输出到一个CSV文件?

ORDER_NUMBER

我有以下的代码来调用QSTAR:

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

但似乎我只获得

ORDER_NUMBER

QSTAR

我可以正确地称'Qstar'吗?

谢谢!

+0

从各地QSTAR采取引号下来,你会得到QSTAR举行的变量。 –

+0

谢谢! @MohammadAthar – Chenxi

试试这个:

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

通过在Qstar周围使用单引号,您告诉Python创建一个值为'Qstar'的字符串。为了输出变量QSTAR的价值,只是不使用单引号:

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

谢谢!就是这样@ldueck – Chenxi

那是因为你给的数据阵列字符串,而不是数字。从Qstar和Order_number删除单引号。

+0

非常感谢! @Sahin – Chenxi