python函数,csv文件之间的数学

时间:2015-12-22 17:08:32

标签: python function

我有一个读取csv文件的函数,然后查找特定值的平均值。我想使用此函数读取两个单独的csv文件,然后找到csv文件之间的平均值。我怎么做这个,因为函数不创建变量?你能在循环中做这样的事吗?

我知道最后一行没有任何意义,但这基本上就是我要做的......

import csv
import math

def read_file(file):
    with open(file, 'rt') as f:
        reader = csv.reader(f, delimiter = ',')
        temperatures = []
        for row in reader:
            if(row[2] == date):
                temperatures.append(float(row[3]))
        print(sum(temperatures)/len(temperatures))

read_file('temp1.csv')
read_file('temp2.csv')

bay_temp = (read_file('temp1.csv')+ read_file('temp2.csv'))/2
print bay_temp

2 个答案:

答案 0 :(得分:1)

您需要返回结果。

变化:

print(sum(temperatures)/len(temperatures))

在:

return sum(temperatures)/len(temperatures)

如果之前的功能有效,它应该给你平均温度。

答案 1 :(得分:0)

您可能只需使用内置的mean()函数并将其存储在变量中。使用Pandas可能是一个很好的情况,因为它可以读取CSV文件并将所需的列或数据提取到数据帧或系列中,然后对数据使用统计函数,例如mean()。这可能不是最好的统计用途,但它是如何使用熊猫的想法:

var newWin;

function printDetails() {
    var content = $("#pdf-area").html();
    var host = window.location.protocol + "//" + window.location.host;
    var cssFiles = [
        host + "/Themes/MSD/Styles/template/ma-order-details-2.css",
        host + "/Scripts/libraries/zurb-responsive-tables/0.0.0/responsive-tables.css",
        host + "/Themes/MSD/Styles/template/checkout-cart-2.css",
        host + "/Themes/MSD/Styles/msdtheme.css",
        host + "/Themes/MSD/Styles/foundation.css",
        host + "/Themes/MSD/Styles/base.css",
        host + "/Themes/MSD/Styles/print.css"
    ];
    newWin = window.open();    
    cssFiles.forEach(function (file) {
        newWin.document.write('<link rel="stylesheet" href="' + file + '" type="text/css" />');
    });
    newWin.document.write("<span class='please-wait'>Please wait...</span>");
    newWin.document.write("<div class='ma-order-details-2'>");
    newWin.document.write(content);
    newWin.document.write("</div>");
    newWin.document.close();
    newWin.focus();
    setTimeout(function () {
        newWin.print();
        newWin.close();
    }, 1000);   
}