首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何过滤csv中的两列?

如何过滤csv中的两列?
EN

Stack Overflow用户
提问于 2017-05-17 02:57:26
回答 5查看 1.2K关注 0票数 0

因此,我有一个csv (https://ufile.io/y4nr9),它由“,”分隔,并包含“名称”、“幸存”、“性别”等列。我想找出没有存活的男性的百分比,并打印统计数据。到目前为止,我的代码如下:

代码语言:javascript
复制
import csv
reader = csv.reader(open('titanic-new_alphabetized.csv'), delimiter= ',')
filtered = filter(lambda p: 'male' == p[3], reader)
dict = []

input('press ENTER to exit')
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-05-17 03:31:08

您可以过滤它们并在Python 3中像这样计算统计数据:

代码语言:javascript
复制
import csv

total, survived = 0, 0

with open('titanic-new_alphabetized.csv',  newline='') as csvfile:
    for row in filter(lambda p: 'male'==p[3], csv.reader(csvfile, delimiter= ',')):
        total += 1
        if int(row[0]):
            survived += 1

print('total: {}, survived: {} ({:.2f}%)'.format(total, survived, 
                                                 survived/total * 100))

输出:

代码语言:javascript
复制
total: 577, survived: 109 (18.89%)
票数 0
EN

Stack Overflow用户

发布于 2017-05-17 03:00:42

您正在使用list语法创建字典。

您应该使用dict = {}。

票数 0
EN

Stack Overflow用户

发布于 2017-05-17 03:02:52

您还应该以变量的形式打开文件,这样以后就可以轻松地关闭它。

或者使用with ... as打开文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44014749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档