繁体   English   中英

未定义变量和缩进错误

[英]Variables are not defined and indentation errors

我是python的新手,我正在编写代码以在一周中的几天之间创建性别之间的绘图图,我不知道它有什么问题,因为没有结果,并且有未定义变量'gender'的错误

注意:我正在使用python 3

import calendar
def gender_perday_analysis(filename, gender):
    with open(filename, 'r') as f_in:
        Reader = csv.DictReader(f_in)

        week_days = 0
        Female_count = []
        Male_count = []

        for row in Reader:
            if row['gender'] == 'Female':
                if row['day_of_week'] == 'Sunday':
                    week_days+= 1
                    Female_count.append(week_days)
                elif row['day_of_week'] == 'Monday':
                    week_days+= 1
                    Female_count.append(week_days)
                elif row['day_of_week'] == 'Tuesday':
                    week_days+= 1
                    Female_count.append(week_days)
                elif row['day_of_week'] == 'Wednesday':
                    week_days+= 1
                    Female_count.append(week_days)
                elif row['day_of_week'] == 'Thursday':
                    week_days+= 1
                    Female_count.append(week_days)
                elif row['day_of_week'] == 'Friday':
                    week_days+= 1
                    Female_count.append(week_days)
                else:
                    week_days+= 1
                    Female_count.append(week_days)
            else:
                week_days+= 1
                Male_count.append(week_days)

        return Male_count, Female_count


Chicago = './data/Chicago-2016-Summary.csv'
result2 = gender_perday_analysis(Chicago, 'gender')
print(result2)
if row['gender'] == 'Female':

您传入的是一串'gender' ,而不是可变的gender 更正以下内容之一:

if row[gender] == 'Female':

导入CSV,可以帮助添加错误

可能是您的文件实际上没有读取您认为需要的内容。 读取文件可能是错误的。 如果可以添加IDE给出的确切错误,将很有帮助。 测试读取文件是否有问题。 添加此语句

for row in Reader:
       print(row)

此外,您可以尝试使用Pandas读取和分析文件,因为这使事情变得更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM