Python 如何将csv中的一列数据作为目标?

Python 如何将csv中的一列数据作为目标?,python,python-2.7,csv,Python,Python 2.7,Csv,目标:找到“预算”列的平均值(来自导入的csv文件的数据) 到目前为止,我已经让我的程序打开和打印电子表格的内容,并清理了一些格式 我不确定如何将该文件附加到此帖子,但列的内容为['title,year,length,budget,rating,vows\r\n'] 如何开始操作数据?更具体地说,针对“预算”栏,开始计算 PS:我被要求在不使用“导入csv”模块的情况下解决这个问题 我迄今为止的工作: f = open("movies.csv") lines = f.readlines()

目标:找到“预算”列的平均值(来自导入的csv文件的数据)

到目前为止,我已经让我的程序打开和打印电子表格的内容,并清理了一些格式

我不确定如何将该文件附加到此帖子,但列的内容为['title,year,length,budget,rating,vows\r\n']

如何开始操作数据?更具体地说,针对“预算”栏,开始计算

PS:我被要求在不使用“导入csv”模块的情况下解决这个问题

我迄今为止的工作:

f = open("movies.csv") 
lines = f.readlines()

i = 0

while i < len(lines):
    line = lines[i]
    line = line[:-2] # remove trailine \r\n\ from line
    print "%4d   %s" % (i+1, line)
    i = i + 1
f=open(“movies.csv”)
行=f.读行()
i=0
而i
您可以像这样拆分csv文件,只获得所需的列。这里我正在从.csv文件打印一个价格列

 >>> for line in open("SalesJan2009.csv"):
...     csv_row = line.split('\r')[0].split(',')
...     print csv_row[2]
输出如下。您可以对它们求和,而不是打印

Price
1200
1200
1200
1200
3600
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
3600

您可以像这样拆分csv文件,以仅获取所需的列。这里我正在从.csv文件打印一个价格列

 >>> for line in open("SalesJan2009.csv"):
...     csv_row = line.split('\r')[0].split(',')
...     print csv_row[2]
输出如下。您可以对它们求和,而不是打印

Price
1200
1200
1200
1200
3600
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
1200
3600

使用标准库中的
csv
模块


现在,您可以以任何方式对其进行操作,所有预算都位于标准库中的
预算
变量

使用
csv
模块

f=open('movies.csv','r')
lines = f.read().split('\n')   #create list from the lines read
header_list = lines[0].strip().split(',') # first item of the list is header line make it a list , so that you can get the index of your keyword budget
index = header_list.index('budget')

total_budget = 0
count = 0

for item in lines[1:]:  # skip the first line which is a header
    if item != '':
        if item.strip().split(',')[index] is not 'NA':
            total_budget += float(item.strip().split(',')[index])
            count +=1

print  total_budget
avg_budget = total_budget/count
print avg_budget

现在,您可以以任何方式操作它,所有预算都在
预算中
变量中

然后,使用numpy模块。在“while”循环之后,将列表列表转换为numpy数组。如果你需要在作业之外做这些事情,你应该检查一下,如果你没有-它有很酷的功能,比如使用numpy模块。在“while”循环之后,将列表列表转换为numpy数组。如果你需要在分配之外做这些事情,你应该检查一下,如果你没有-它有一些很酷的功能,比如这是一个不考虑导入内置模块的解决方案错误:“无法将字符串转换为浮点:NA”在本专栏中有“不适用-NA”行。如何跳过这些并使用条件语句继续下一行?嗨,Xavier,请检查我添加了一个额外的条件来检查NA。这是考虑不导入内置模块的解决方案错误:“无法将字符串转换为浮点:NA”在该列中有“不适用-NA”行。我怎样才能跳过这些内容并使用条件语句继续下一行?嗨,Xavier,请检查我添加了一个额外的条件来检查NA。遇到了一些问题:此电子表格中的某些电影没有列出预算,并且在电子表格中标记为“NA”(不适用)。这是在制造问题。[链接]如果要对所有预算值求和,请执行以下操作:
如果csv_行[2]!='NA':sum+=int(csv_行[2])
遇到了一些问题:此电子表格中的某些电影没有列出预算,并且在电子表格中标记为“NA”(不适用)。这是在制造问题。[链接]如果要对所有预算值求和,请执行以下操作:
如果csv_行[2]!='NA':总和+=int(csv_行[2])
f=open('movies.csv','r')
lines = f.read().split('\n')   #create list from the lines read
header_list = lines[0].strip().split(',') # first item of the list is header line make it a list , so that you can get the index of your keyword budget
index = header_list.index('budget')

total_budget = 0
count = 0

for item in lines[1:]:  # skip the first line which is a header
    if item != '':
        if item.strip().split(',')[index] is not 'NA':
            total_budget += float(item.strip().split(',')[index])
            count +=1

print  total_budget
avg_budget = total_budget/count
print avg_budget