首页 > 代码库 > python数据分析美国大选项目实战(三)
python数据分析美国大选项目实战(三)
项目介绍
项目地址:https://www.kaggle.com/fivethirtyeight/2016-election-polls
包含了2015年11月至2016年11月期间对于2016美国大选的选票数据,共27列。
项目目的:分析每个月的民意调查统计趋势。
涉及知识点:
- 高阶函数filter
- numpy读取文本文件
- 处理日期格式数据
- numpy的切片和索引
- numpy的统计方法
- 列表推导式
- 数据结构zip
- Matplotlib进行简单的数据可视化
项目代码
# -*- coding: utf-8 -*- import numpy as np import datetime import matplotlib.pyplot as plt def main(): # 数据文件地址 filename = ‘./presidential_polls.csv‘ # 读取列名,即第一行数据 with open(filename, ‘r‘) as f: col_names_str = f.readline()[:-1] # [:-1]表示不读取末尾的换行符‘\n‘ # 将字符串拆分,并组成列表 col_name_lst = col_names_str.split(‘,‘) # 使用的列名 use_col_name_lst = [‘enddate‘, ‘rawpoll_clinton‘, ‘rawpoll_trump‘, ‘adjpoll_clinton‘, ‘adjpoll_trump‘] # 获取相应列名的索引号 use_col_index_lst = [col_name_lst.index(use_col_name) for use_col_name in use_col_name_lst] # 数据读取 data_array = np.loadtxt(filename, # 文件名 delimiter=‘,‘, # 分隔符 skiprows=1, # 跳过第一行,即跳过列名 dtype=str, # 数据类型 usecols=use_col_index_lst) # 指定读取的列索引号 # 处理日期格式数据 enddate_idx = use_col_name_lst.index(‘enddate‘) enddate_lst = data_array[:, enddate_idx].tolist() # print enddate_lst # 将日期字符串格式统一,即‘yy/dd/mm‘ enddate_lst = [enddate.replace(‘-‘, ‘/‘) for enddate in enddate_lst] # 将日期字符串转换成日期 date_lst = [datetime.datetime.strptime(enddate, ‘%m/%d/%Y‘) for enddate in enddate_lst] # 构造年份-月份列表 month_lst = [‘%d-%02d‘ % (date_obj.year, date_obj.month) for date_obj in date_lst] month_array = np.array(month_lst) months = np.unique(month_array) # print months # 统计民意投票数 # cliton # 原始数据 rawpoll rawpoll_clinton_idx = use_col_name_lst.index(‘rawpoll_clinton‘) rawpoll_clinton_data = http://www.mamicode.com/data_array[:, rawpoll_clinton_idx]""" 判断一个字符串能否转换为float """ try: float(s) except: return False return True def get_sum(str_array): """ 返回字符串数组中数字的总和 """ # 去掉不能转换成数字的数据 cleaned_data = http://www.mamicode.com/filter(is_convert_float, str_array)>
python数据分析美国大选项目实战(三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。