【问题标题】:Python output to csv filePython 输出到 csv 文件
【发布时间】:2025-12-06 12:25:01
【问题描述】:

我在输出到 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

5

我有以下代码可以调用 Qstar:

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

但我好像只得到了

Order_Number

Qstar

我怎样才能正确调用“Qstar”?

谢谢!

【问题讨论】:

  • 去掉Qstar周围的引号,你会得到Qstar中保存的变量。

标签: python csv output


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢!就是这样@ldueck
    【解决方案3】:

    那是因为您使用字符串而不是数字来提供数据数组。删除 Qstar 和 Order_number 中的单引号。

    【讨论】:

    • 非常感谢! @Sahin