项目3:美国大选献金目数据分析

"""
需求:
1.读取数据
2.查看是否有缺失数据
3.用统计学指标快速描述数值型属性的概要
4.空值处理。可能因为忘记填写保密等原因,相关字段出现了空值,将其填充为NOT PROVIDE
df.fillna(value = 'NOT PROVIDE',inplace=True)
5.异常值的处理。将捐赠金额<=0的数据删除
df.drop(labels=drop_indexs,axis=0,inplace=True)
axis=0是行,唯一一个特殊的
6.新建一列为各个候选人所在党派的party
7.查看party这一列中有哪些不同的元素
8.统计party列中各个元素出现的次数
9.查看各个党派收到的政治献金总数
10.查看具体每天各个党派收到的政治现金总数
11.将表中的时期格式转变为"yyyy-mm-dd"
12.查看老兵(捐赠者职业)主要支持谁
"""

#1.读取数据
import pandas as pd
import numpy as np
df=pd.read_csv(r"D:\拜师课程\数据分析项目-合集-自由式学习\数据分析项目\项目3:美国大选现金项目数据分析\usa_election.txt")


#2.查看是否有缺失数据
df.info()

#3.用统计学指标快速描述数值型属性的概要
df.describe()
"""
       contb_receipt_amt       file_num
count       5.360410e+05  536041.000000
mean        3.750373e+02  761472.107800
std         3.564436e+03    5148.893508
min        -3.080000e+04  723511.000000
25%         5.000000e+01  756218.000000
50%         1.000000e+02  763233.000000
75%         2.500000e+02  763621.000000
max         1.944042e+06  767394.000000
"""

#4.空值处理。可能因为忘记填写保密等原因,相关字段出现了空值,将其填充为NOT PROVIDE
df.fillna(value = 'NOT PROVIDE',inplace=True)

#5.异常值的处理。将捐赠金额<=0的数据删除
drop_indexs=df.loc[df['contb_receipt_amt']<=0].index
df.drop(labels=drop_indexs,axis=0,inplace=True)

#6.新建一列为各个候选人所在党派的party
#根据名字去百度查询,各个候选人所在的党派,写成一个字典
"""
字典形式为:
partise={
    "人名,人名":"所在的党派",
    "人名,人名":"所在的党派",
    "人名,人名":"所在的党派",
    }
df['party']=df['cand_nm'].map(parties)
"""

#7.查看party这一列中有哪些不同的元素
"""
df['patry'].unique()
"""

#8.统计party列中各个元素出现的次数
df['party'].value_counts()

#9.查看各个党派收到的政治献金总数
df.groupby(by='party')["contb_receipt_amt"].sum()


#10.查看具体每天各个党派收到的政治现金总数(多条件分组)
df.groupby(by=['contb_receipt_dt','party'])['contb_receipt_amt'].sum()

#11.将表中的时期格式转变为"yyyy-mm-dd"
"""
def trandformDate(d):
    day,month,year = d.spiit('-')
    month = months[month]
    return '20' + year + '-' +str(month) + '_' + day
    
df['contb_receipt_dt']=df['contb_receipt_dt'].map(trandformDate(trandformDate))
"""

#12.查看老兵(捐赠者职业)主要支持谁:给谁捐赠的钱越多越支持谁
#可以先将原数据中的老兵这个职业对于的行数据取出
df['contbr_occupation']=='DISABLED VETERAN'
df_old=df.loc[df['contbr_occupation']=='DISABLED VETERAN']
#对候选人分组,然后对捐赠金额求和
df_old.groupby(by="cand_nm")['contb_receipt_amt'].sum()
"""
cand_nm
Cain, Herman       300.00
Obama, Barack     4205.00
Paul, Ron         2425.49
Santorum, Rick     250.00
Name: contb_receipt_amt, dtype: float64
"""

你可能感兴趣的:(数据分析,数据挖掘)