如何在csv文件python中的特定列下插入数据

时间:2013-02-18 08:52:07

标签: python csv

我有这段代码:

  def _download_url(url):
    response = None
    try:
        response = urllib.request.urlopen(url)

        content_bytes=response.read()
        content_string=content_bytes.decode(encoding='utf-8')

        data = io.StringIO(content_string)
        mycsv=csv.reader(data)
        mycsv = csv.DictReader(data)

        print('{:<11} {:<8} {:<12} {:<12}'.format('Date', 'Close', 'Indicator', 'Signal'))
        for row in mycsv:

            print('{:<11} {:<8}'.format(row['Date'], row['Adj Close']))

如何创建代码,以便能够在指示符/信号列下插入数据? 我想从“关闭”列中获取数据并使用该数字列表查找平均值并将其打印在指标列下方。然后使用指标中的结果并在信号列下面对其执行某些操作。

- 编辑 - 这就是我运行时的样子

Date        Close    Indicator    Signal      
2012-11-30  698.37   
2012-11-29  691.89  
2012-11-28  683.67  
2012-11-27  670.71  
2012-11-26  661.15  
2012-11-23  667.97  

但是,我希望它看起来像

Date        Close    Indicator    Signal      
2012-11-30  698.37     0
2012-11-29  691.89  -put data here-
2012-11-28  683.67  -another data-
2012-11-27  670.71  -etc-
2012-11-26  661.15  
2012-11-23  667.97  

我想从第二列(关闭)中获取数据并使用这些数字计算平均值

1 个答案:

答案 0 :(得分:0)

仍然没有理解OP想要的内容,如下所示

  

在指标/信号列下方插入数据   但我无法相信OP想要的东西。

因此,通过将calculated_indicatorcalculated_signal放入我们可以确定这些函数是否适用于行或完整的行集。

def calculated_indicator(row):
     return 0

def calculated_signal(row):
     return 0

def _download_url(url):
    response = None
    try:
        response = urllib.request.urlopen(url)

        content_bytes=response.read()
        content_string=content_bytes.decode(encoding='utf-8')

        data = io.StringIO(content_string)
        mycsv=csv.reader(data)
        mycsv = csv.DictReader(data)

        print('{:<11} {:<8} {:<12} {:<12}'.format('Date', 'Close', 'Indicator', 'Signal'))
        for row in mycsv:

            print('{:<11} {:<8}'.format(row['Date'], row['Adj Close'], calculated_indicator(row), calculated_signal(row)))