(九) 美国2012年总统候选人政治献金数据分析
方便大家操作,将月份和参选人以及所在政党进行定义:
months = {'JAN': 1, 'FEB': 2, 'MAR': 3, 'APR': 4, 'MAY': 5, 'JUN': 6, 'JUL': 7, 'AUG': 8, 'SEP': 9, 'OCT': 10, 'NOV': 11, 'DEC': 12} of_interest = ['Obama, Barack', 'Romney, Mitt', 'Santorum, Rick','Paul, Ron', 'Gingrich, Newt'] parties = { 'Bachmann, Michelle': 'Republican', 'Romney, Mitt': 'Republican', 'Obama, Barack': 'Democrat', "Roemer, Charles E. 'Buddy' III": 'Reform', 'Pawlenty, Timothy': 'Republican', 'Johnson, Gary Earl': 'Libertarian', 'Paul, Ron': 'Republican', 'Santorum, Rick': 'Republican', 'Cain, Herman': 'Republican', 'Gingrich, Newt': 'Republican', 'McCotter, Thaddeus G': 'Republican', 'Huntsman, Jon': 'Republican', 'Perry, Rick': 'Republican' }
完成下列需求:
1.读取文件usa_election.txt 2.查看文件样式及基本信息 3.【知识点】使用map函数+字典,新建一列各个候选人所在党派party 4.使用np.unique()函数查看colums:party这一列中有哪些元素 5.使用value_counts()函数,统计party列中各个元素出现次数,value_counts()是Series中的,无参,返回一个带有每个元素出现次数的Series 6.【知识点】使用groupby()函数,查看各个党派收到的政治献金总数contb_receipt_amt 7.查看具体每天各个党派收到的政治献金总数contb_receipt_amt。使用groupby([多个分组参数]) 8.将表中日期格式转换为'yyyy-mm-dd'。日期格式,通过函数加map方式进行转换 9.查看老兵(捐献者职业)DISABLED VETERAN主要支持谁 :查看老兵们捐赠给谁的钱最多 10.找出各个候选人的捐赠者中,捐赠金额最大的人的职业以及捐赠额,通过query("查询条件来查找捐献人职业")
1.读取文件usa_election.txt
data = pd.read_csv('./data/usa_election.txt') data.head()
2.查看文件样式及基本信息
3.【知识点】使用map函数+字典,新建一列各个候选人所在党派party
data['party'] = data['cand_nm'].map(parties) data.head()
4.使用np.unique()函数查看colums:party这一列中有哪些元素
data['party'].unique()
5.使用value_counts()函数,统计party列中各个元素出现次数,value_counts()是Series中的,无参,返回一个带有每个元素出现次数的Series
data['party'].value_counts()
6.【知识点】使用groupby()函数,查看各个党派收到的政治献金总数contb_receipt_amt
data.groupby(by='party',axis=0)['contb_receipt_amt'].sum()
7.查看具体每天各个党派收到的政治献金总数contb_receipt_amt。使用groupby([多个分组参数])
data.groupby(by=['party','contb_receipt_dt'],axis=0)['contb_receipt_amt'].sum()
8.将表中日期格式转换为'yyyy-mm-dd'。日期格式,通过函数加map方式进行转换
def transform_date(d): day,month,year = d.split('-') month = months[month] return '20'+year+'-'+str(month)+'-'+day # date = data['contb_receipt_dt'].apply(transform_date) date = data['contb_receipt_dt'].map(transform_date) data['contb_receipt_dt'] = date data.head()
9.查看老兵(捐献者职业)DISABLED VETERAN主要支持谁 :查看老兵们捐赠给谁的钱最多
# 1.先从原数据中将老兵这个职业对应的行数据取出 data['contbr_occupation'] == 'DISABLED VETERAN' veteran_df = data.loc[data['contbr_occupation'] == 'DISABLED VETERAN'] veteran_df.head() # 2.对竟选者进行分组 veteran_df.groupby(by='cand_nm',axis=0)['contb_receipt_amt'].sum()
10.找出各个候选人的捐赠者中,捐赠金额最大的人的职业以及捐赠额,通过query("查询条件来查找捐献人职业")
# 1.先找出捐赠金额最大的人 data['contb_receipt_amt'].max() # 2.然后直接使用条件查询出结果 data.query('contb_receipt_amt == %f'%data['contb_receipt_amt'].max())
作者:TigerLee
出处:http://www.cnblogs.com/tiger666/
本文版权归作者和博客园所有,欢迎转载。转载请在留言板处留言给我,且在文章标明原文链接,谢谢!
如果您觉得本篇博文对您有所收获,觉得我还算用心,请点击右下角的 [推荐],谢谢!