Python analiza las fuentes de financiación de Obama
No sólo a los ricos no se les permite donar más, sino que también es ilegal que los jefes pidan a los empleados que donen dinero a alguien o voten por él. Por lo tanto, sólo consiguiendo que más votantes apoyen y recaudando dinero poco a poco se podrán recaudar decenas de millones de dólares para la competición. Por lo tanto, China, las empresas y las grandes donaciones son ilegales.
Recuerdo que China ha tenido escándalos similares antes. Las leyes electorales en Estados Unidos tienen como objetivo impedir que unas pocas personas intenten influir en la política estadounidense con unos pocos dólares. Por tanto, como extranjeros, no debemos buscar problemas.
Importar paquete
En [1]:
importar numpy como npimport pandas como pdf desde pandas import Series,DataFrame
Para todos conveniencia, defina meses por candidatos y sus partidos
En [2]:
meses = {'JAN' : 1, 'FEB' : 2, ' MAR' : 3, ' ABR': 4, 'MAYO': 5, 'JUN': 6, 'JUL': 7, 'AGO': 8, 'SEP': 9, 'OCT': 10, 'NOV': 11, 'DIC' : 12} of_ interest = ['Obama, Barack', 'Romney, Mitt', 'Santorum, Rick', 'Paul, Ron', 'Gingrich, Newt'] partidos = { 'Bachmann, Michelle ': Republicano', ' Gary Earl Johnson': 'Liberal', 'Ron Paul': 'Republicano', 'Perry, Rick': 'Republicano' }
Lea el archivo
En [3]:
table = pd.read_csv('data/usa_election.txt') table.head()
C:\jupyter \libs\ite-packages\IPython\core\interactiveshell. py:2785.DtypeWarning: especifique la opción Dtype o establezca low_memory=False al importar.
Fuera[3]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_ ocupación contb_receipt_amt contb_receipt_dt recibo_desc memo_cd memo_text form_tp file_num
0 C00410118 2978 Bachmann, Michelle HARVEY , WILLIAM MOBILE AL 3.6601e 08 JUBILADO JUBILADO 250.0 20-JUN-11 NaN NaN NaN SA17A 736166
1 C00410118 P20002978 Bachmann, Michelle HARVEY.WILLIAM MOBILE AL 3.6601e 08 JUBILADO JUBILADO 50.0 23 - JUN-11 NaN NaN NaN NaN SA17A 736166
2 C00410118 P20002978 Bachmann, Michelle SMITH, LANIER LANETT AL 3.68633e 08 INFORMACIÓN SOLICITADA INFORMACIÓN SOLICITADA 250.0 05-JUL-11 NaN NaN NaN SA17A 749073
3 8 P20002978 Bachmann, Michelle BLEVINS, SA17A 736166
2 C00410118 P20002978 Bachmann, Michelle SMITH, LANIER Michelle BLEVINS, DARONDA PIGGOTT AR 7.24548e 08 NINGUNO JUBILADO 250.0 01-AGO-11 NaN NaN NaN NaN SA17A 7 49073 >
4 C00410118 P20002978 Bachmann, Michelle WARDENBURG, HAROLD HOT SPRINGS NATION AR 7.19016e 08 NINGUNO JUBILADO 300.0 20-JUN-11 NaN NaN NaN NaN SA17A 736166
En [8]:
#Utilizando el Diccionario de funciones de mapa, cree una nueva columna de cada candidato The party party table['party'] = table['cand_nm'].map(parties) table.head()
Fuera [8]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb_receipt_dt recibo_desc memo_cd memo_text form_tp file_num party
0 C00410118 P200 978 Bachmann, Michelle HARVEY, WILLIAM MOBI
LE AL 3.6601e 08 JUBILADO JUBILADO 250.0 20-JUN-11 NaN NaN NaN SA17A 736166 Republicano
1 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 JUBILADO JUBILADO 50.0 23-JUN- 11 NaN Nan sa17a 736166 republicano
2 C00410118 P20002978 Bachmann, Michelle Smith, Lanier Lanett Al 3.68633e 08 Información Solicitada Información solicitada 250.0 05-Jul-11 Nan Nan Nan Sa17a 749073 Republican
3 C0041118 P20002978 Bachmann, Michelle BLEVINS, DARONDA PIGGOTT AR 7.24548e 08 NINGUNO JUBILADO 250.0 01-AGO-11 NaN NaN NaN SA17A 749073 Republicano
4 C00410118 P20002978 Bachmann, Michelle WARDENBURG, HAROLD HOT SPRINGS NATION AR 7. 19016e 08 NINGUNO RETIRADO 300.0 20-JUN-11 NaN NaN NaN NaN SA17A 736166 Republicano
En [10]:
#Qué elementos hay en la columna tabla de partidos['partido'].unique( )
Fuera[10]:
array(['Republicano', 'Demócrata', 'Reforma', 'Libertario'], dtype=object)
En [ ]:
#Utilice la función value_counts() para calcular el número de apariciones de cada elemento en el grupo value_counts() utiliza una secuencia sin parámetros y devuelve una secuencia que contiene el número de apariciones. de cada elemento p>
En [11]:
tabla['party'].value_counts()
Salida[11]:
Demócrata 292400Republicano 237575Reforma 5364Libertario 702Nombre: partido, tipo d: int64
En [12]:
#Usando la función groupby() para ver el número total de contribuciones políticas recibidas por cada partido contb_receipt_amttable.groupby( by='party')['contb_receipt_amt'].sum()
Fuera [12]:
PartidoDemócrata 8.105758e 07Libertario 4.132769e 05Reforma 3.390338e 05Republicano 1.192255e 08Nombre: contb_recibo_am
t, dtype: float64
En [13]:
#Ver el número total de contribuciones políticas recibidas por cada partido en un día específico contb_receipt_amt. Usar groupby([Múltiples parámetros de agrupación] )table.groupby(by=['partido','contb_receipt_dt'])['contb_receipt_amt'].sum()
Fuera [13]:
partido contb_ recibo_dtDemócrata 01 - AGO-11 175281.00 01-DIC-11 651532.82 01-ENE-12 58098.80 01-JUL-11 165961.00 01-JUN-11 145459.00 01-MAY-11 82644.00 01-NOV -11 1225 .87 01-oct-11 148977.00 01-septiembre -11 403297.62 02-ago-11 164510.11 02-dic-11 216056.96 02-ene-12 89743.60 02-ul-11 17105.00 02-jun-11 422453.00 02-may-11 396675.00 2-nov-11 147183.81 02-ct- 11 62605.62 02-sep-11 137948.41 03-ago-11 147053.02 03-dic-11 81304.02 03-ene-12 87406.97 03-JUL-11 5982.00 03-JUN-11 320176.20 MAYO -11 261819.11 03-NOV-11 119304.56 03 -OCT-11 363061.02 03-SEP-11 45598.00 04-ABR-11 640235.12 04-UG-11 598784.23 04-DIC-11 72795.10 ... República 29-AGO-11 941769.23 29-DIC-11 8 501,42 29-ENE -11 750.00 29-ENE-12 75220.02 29-JUL-11 233423.35 29-JUN-11 1340704.29 29-MAR-11 38875.00 29-MAY-11 8363.20 29-NOV-11 407322.64 OC T-11 81924.01 29-SEP- 11 1612794.52 30 -ABR-11 43004.80 30-ABR-11 915548.58 30-ABR-11 492470.45 30-ENE-12 255204.80 30-JUL-11 12249.04 30-JUN-11 .63 30-MAR-11 502 40.00 30-MAY-11 17803.60 30-NOV -11 809014.83 30-OPR-11 43913.16 30-SEP-11 4886331.76 31-ago-11 1017735.02 31-dic-11 1094376.72 31-ene-11 6000.00 1-ene-12 869890.4 1 31-jul-11 12781.02 31-mar-11 62475.00 31-may-11 301339.80 31-oct-11 734601.83Nombre: contb_recibo_
amt, Longitud: 1183, dtype: float64
En [14]:
def trasform_date( d): día,mes,año = d.split('-') mes = meses[mes] return "20" año '-' str(mes) '-' día
En [17]:
# Convierte el formato de fecha en la tabla a "yyyy -mm-dd".
Formato de fecha, convertido por función más tabla de ruta del mapa['contb_receipt_dt'] = table['contb_receipt_dt'].apply(trasform_date)
En [18]:
table.head( )
Fuera [18]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb _receipt_dt recibo_desc memo_cd memo_text form_tp file_num parte
0 C004 8 P20002978 Bachman , Michelle HARVEY, WILLIAM MOBILE AL 3.6601 e 08 JUBILADO JUBILADO 250.0 2011-6-20 NaN NaN NaN SA17A 736166 Republicano
1 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 JUBILADO JUBILADO 5 0,0 2011- 6 -23 nan nan nan nan sa17a 736166 republicano
2 C00410118 P20002978 Bachmann, Michelle Smith, Lanier Lanett Al 3.68633e 08 Información Solicitada Información solicitada 250.0 2011-7-05 nan nan nan sa17a 7 49073 Republican
3 C00410118 P20002978 Bachmann, Michelle BLEVINS, DARONDA PIGGOTT AR 7.24548e 08 NINGUNO JUBILADO 250.0 2011-8-01 NaN NaN NaN NaN SA17A 749073 Republicano
4 C00410118 P20002978 Bachmann, Michelle WARDENBURG , HAROLD HOT SPRINGS NATION AR 7.19016e 08 NINGUNO JUBILADO 300.0 2011-6-20 NaN NaN NaN NaN SA17A 736166 Republicano
En [19] :
#Ver quiénes veteranos (ocupación del donante ) VETERANO DISABLETO apoya principalmente: Vea quiénes los veteranos han donado más a la mesa['contbr_occupation'] == 'VETERANO DISABLETO'
Fuera [19]:
0 False1 False2 False3 False4 Falso5 Falso6 Falso7 Falso8 Falso9 Falso10 Falso11 Falso12 Falso13 Falso14 Falso15 Falso16 Falso17 Falso
se18 Falso19 Falso20 Falso21 Falso22 Falso23 Falso24 Falso25 Falso26 Falso27 Falso28 Falso29 Falso ... 536011 Falso536012 Falso536013 Falso536014 Falso536015 Falso536016 Falso536017 Falso536018 Falso536019 536020 Falso536021 Falso536022 Falso536023 Falso536024 Falso536025 Falso536026Falso536027 Falso536028 Falso536029 Falso536030 Falso536031 Falso536032 Falso536033 Falso536034 6 035 Falso536036 Falso536037 Falso536038 Falso536039 Falso536040 FalsoNombre:contbr_ocupación , Longitud: 536041, dtype: bool
En [21]:
old_bing_df = table.loc[table['contbr_occupation'] == 'VETERANO DISCAPACITADO'] p>
En [22]:
old_bing_df.groupby( by='cand_nm')['contb_receipt_amt'].sum()
Fuera [22]: p>
cand_nmCain, Herman 300.00Obama, Barack 4205.00Paul, Ron 2425.49Santorum.Rick 250.00Nombre: contb_receipt_amt, dtype: float64
En [23]:
tabla [' contb_receipt_amt'].max()
Salida[23]:
1944042.43
Entrada [24]:
#Buscar candidatos La ocupación y el monto de la donación del donante más grande. A través de query("Condiciones de consulta para encontrar la ocupación del donante") table.query('contb_receipt_amt == 1944042.43')
Out [24]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb_receipt_dt recibo_desc memo_cd memo_text form_tp file_num party
176127 C00431445 P80003338 Obama, Barack OBAMA VICTORY FUND 2012 - UNITEMIZED CHICAGO IL 60680 NaN NaN 19 44042.43 2011-12-31 NaN X * SA18 763233 Demócrata
Fuente:/content-1-497751.html