方便大家操作,将月份和参选人以及所在政党进行定义:

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()  --返回Array([])数组

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=[\'contb_receipt_dt\',\'party\'],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())

 

版权声明:本文为aitree原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/aitree/p/14326429.html