En esta sesión, nos veremos operaciones entre columnas utilizando Pandas. Abordaremos desde la creación de nuevas columnas hasta la eliminación de las que ya no necesitamos, destacando las herramientas clave que Pandas pone a nuestra disposición para la manipulación eficaz de datos.
Aprenderás a realizar operaciones matemáticas básicas entre columnas de tu DataFrame, tales como sumar dos columnas para obtener un total o restar una constante. Además, podrás aplicar funciones personalizadas o utilizar las funciones integradas de Pandas para llevar a cabo cálculos más complejos entre columnas, lo que ampliará significativamente las capacidades de tu análisis.
f = "../data/Cuernavaca_1dia_comas.csv"
cuerna = pd.read_csv(f,index_col= 0 ,parse_dates= True )
cuerna.head()
tiempo
2012-01-01 00:00:00
19.3
0.0
26
87415
0
0
0
2012-01-01 01:00:00
18.6
0.0
26
87602
0
0
0
2012-01-01 02:00:00
17.9
0.0
30
87788
0
0
0
2012-01-01 03:00:00
17.3
0.0
30
87554
0
0
0
2012-01-01 04:00:00
16.6
0.0
27
87321
0
0
0
tiempo
2012-01-01 00:00:00 19.3
2012-01-01 01:00:00 18.6
2012-01-01 02:00:00 17.9
2012-01-01 03:00:00 17.3
2012-01-01 04:00:00 16.6
2012-01-01 05:00:00 15.9
2012-01-01 06:00:00 17.0
2012-01-01 07:00:00 18.0
2012-01-01 08:00:00 19.0
2012-01-01 09:00:00 20.0
2012-01-01 10:00:00 20.0
2012-01-01 11:00:00 20.0
2012-01-01 12:00:00 21.0
2012-01-01 13:00:00 22.0
2012-01-01 14:00:00 21.7
2012-01-01 15:00:00 21.3
2012-01-01 16:00:00 21.0
2012-01-01 17:00:00 19.0
2012-01-01 18:00:00 17.1
2012-01-01 19:00:00 17.0
2012-01-01 20:00:00 17.3
2012-01-01 21:00:00 17.0
2012-01-01 22:00:00 16.6
2012-01-01 23:00:00 15.9
Name: To, dtype: float64
To 22.0
Ws 2.1
Wd 269.0
P 87788.0
Ig 810.0
Ib 999.0
Id 80.0
dtype: float64
cuerna[["To" ,"Ig" ]].min ()
To 15.9
Ig 0.0
dtype: float64
cuerna.To - cuerna.To.mean()
tiempo
2012-01-01 00:00:00 0.695833
2012-01-01 01:00:00 -0.004167
2012-01-01 02:00:00 -0.704167
2012-01-01 03:00:00 -1.304167
2012-01-01 04:00:00 -2.004167
2012-01-01 05:00:00 -2.704167
2012-01-01 06:00:00 -1.604167
2012-01-01 07:00:00 -0.604167
2012-01-01 08:00:00 0.395833
2012-01-01 09:00:00 1.395833
2012-01-01 10:00:00 1.395833
2012-01-01 11:00:00 1.395833
2012-01-01 12:00:00 2.395833
2012-01-01 13:00:00 3.395833
2012-01-01 14:00:00 3.095833
2012-01-01 15:00:00 2.695833
2012-01-01 16:00:00 2.395833
2012-01-01 17:00:00 0.395833
2012-01-01 18:00:00 -1.504167
2012-01-01 19:00:00 -1.604167
2012-01-01 20:00:00 -1.304167
2012-01-01 21:00:00 -1.604167
2012-01-01 22:00:00 -2.004167
2012-01-01 23:00:00 -2.704167
Name: To, dtype: float64
tiempo
2012-01-01 00:00:00 372.49
2012-01-01 01:00:00 345.96
2012-01-01 02:00:00 320.41
2012-01-01 03:00:00 299.29
2012-01-01 04:00:00 275.56
2012-01-01 05:00:00 252.81
2012-01-01 06:00:00 289.00
2012-01-01 07:00:00 324.00
2012-01-01 08:00:00 361.00
2012-01-01 09:00:00 400.00
2012-01-01 10:00:00 400.00
2012-01-01 11:00:00 400.00
2012-01-01 12:00:00 441.00
2012-01-01 13:00:00 484.00
2012-01-01 14:00:00 470.89
2012-01-01 15:00:00 453.69
2012-01-01 16:00:00 441.00
2012-01-01 17:00:00 361.00
2012-01-01 18:00:00 292.41
2012-01-01 19:00:00 289.00
2012-01-01 20:00:00 299.29
2012-01-01 21:00:00 289.00
2012-01-01 22:00:00 275.56
2012-01-01 23:00:00 252.81
Name: To, dtype: float64
(cuerna.To - cuerna.To.mean()).abs ()
tiempo
2012-01-01 00:00:00 0.695833
2012-01-01 01:00:00 0.004167
2012-01-01 02:00:00 0.704167
2012-01-01 03:00:00 1.304167
2012-01-01 04:00:00 2.004167
2012-01-01 05:00:00 2.704167
2012-01-01 06:00:00 1.604167
2012-01-01 07:00:00 0.604167
2012-01-01 08:00:00 0.395833
2012-01-01 09:00:00 1.395833
2012-01-01 10:00:00 1.395833
2012-01-01 11:00:00 1.395833
2012-01-01 12:00:00 2.395833
2012-01-01 13:00:00 3.395833
2012-01-01 14:00:00 3.095833
2012-01-01 15:00:00 2.695833
2012-01-01 16:00:00 2.395833
2012-01-01 17:00:00 0.395833
2012-01-01 18:00:00 1.504167
2012-01-01 19:00:00 1.604167
2012-01-01 20:00:00 1.304167
2012-01-01 21:00:00 1.604167
2012-01-01 22:00:00 2.004167
2012-01-01 23:00:00 2.704167
Name: To, dtype: float64
cuerna["To_avg" ] = cuerna.To.mean() #Esta puede ser con operaciones mas complejas
Index(['To', 'Ws', 'Wd', 'P', 'Ig', 'Ib', 'Id'], dtype='object')
cuerna["To_avg" ] = cuerna.To.mean() #Esta puede ser con operaciones mas complejas
tiempo
2012-01-01 00:00:00
19.3
0.0
26
87415
0
0
0
18.604167
2012-01-01 01:00:00
18.6
0.0
26
87602
0
0
0
18.604167
2012-01-01 02:00:00
17.9
0.0
30
87788
0
0
0
18.604167
2012-01-01 03:00:00
17.3
0.0
30
87554
0
0
0
18.604167
2012-01-01 04:00:00
16.6
0.0
27
87321
0
0
0
18.604167
cuerna.drop(columns= ["To" ,"To_avg" ])
tiempo
2012-01-01 00:00:00
0.0
26
87415
0
0
0
2012-01-01 01:00:00
0.0
26
87602
0
0
0
2012-01-01 02:00:00
0.0
30
87788
0
0
0
2012-01-01 03:00:00
0.0
30
87554
0
0
0
2012-01-01 04:00:00
0.0
27
87321
0
0
0
2012-01-01 05:00:00
0.0
26
87087
0
0
0
2012-01-01 06:00:00
0.0
27
87096
0
0
0
2012-01-01 07:00:00
0.0
34
87140
20
151
11
2012-01-01 08:00:00
0.0
61
87185
164
522
37
2012-01-01 09:00:00
0.0
95
87229
369
812
58
2012-01-01 10:00:00
1.0
108
87229
568
931
68
2012-01-01 11:00:00
2.1
160
87229
717
981
75
2012-01-01 12:00:00
1.8
135
87273
800
999
79
2012-01-01 13:00:00
1.5
160
87316
810
998
80
2012-01-01 14:00:00
1.3
164
87302
747
977
79
2012-01-01 15:00:00
1.2
176
87287
617
932
74
2012-01-01 16:00:00
1.0
140
87273
433
846
65
2012-01-01 17:00:00
0.0
198
87185
219
650
46
2012-01-01 18:00:00
0.0
221
87104
0
0
0
2012-01-01 19:00:00
0.0
269
87101
0
0
0
2012-01-01 20:00:00
0.0
50
87115
0
0
0
2012-01-01 21:00:00
0.2
85
87080
0
0
0
2012-01-01 22:00:00
0.5
89
87089
0
0
0
2012-01-01 23:00:00
0.8
93
87143
0
0
0
tiempo
2012-01-01 00:00:00
19.3
0.0
26
87415
0
0
0
18.604167
2012-01-01 01:00:00
18.6
0.0
26
87602
0
0
0
18.604167
2012-01-01 02:00:00
17.9
0.0
30
87788
0
0
0
18.604167
2012-01-01 03:00:00
17.3
0.0
30
87554
0
0
0
18.604167
2012-01-01 04:00:00
16.6
0.0
27
87321
0
0
0
18.604167
2012-01-01 05:00:00
15.9
0.0
26
87087
0
0
0
18.604167
2012-01-01 06:00:00
17.0
0.0
27
87096
0
0
0
18.604167
2012-01-01 07:00:00
18.0
0.0
34
87140
20
151
11
18.604167
2012-01-01 08:00:00
19.0
0.0
61
87185
164
522
37
18.604167
2012-01-01 09:00:00
20.0
0.0
95
87229
369
812
58
18.604167
2012-01-01 10:00:00
20.0
1.0
108
87229
568
931
68
18.604167
2012-01-01 11:00:00
20.0
2.1
160
87229
717
981
75
18.604167
2012-01-01 12:00:00
21.0
1.8
135
87273
800
999
79
18.604167
2012-01-01 13:00:00
22.0
1.5
160
87316
810
998
80
18.604167
2012-01-01 14:00:00
21.7
1.3
164
87302
747
977
79
18.604167
2012-01-01 15:00:00
21.3
1.2
176
87287
617
932
74
18.604167
2012-01-01 16:00:00
21.0
1.0
140
87273
433
846
65
18.604167
2012-01-01 17:00:00
19.0
0.0
198
87185
219
650
46
18.604167
2012-01-01 18:00:00
17.1
0.0
221
87104
0
0
0
18.604167
2012-01-01 19:00:00
17.0
0.0
269
87101
0
0
0
18.604167
2012-01-01 20:00:00
17.3
0.0
50
87115
0
0
0
18.604167
2012-01-01 21:00:00
17.0
0.2
85
87080
0
0
0
18.604167
2012-01-01 22:00:00
16.6
0.5
89
87089
0
0
0
18.604167
2012-01-01 23:00:00
15.9
0.8
93
87143
0
0
0
18.604167
cuerna.drop(columns= ["To" ,"To_avg" ],inplace= True )
tiempo
2012-01-01 00:00:00
0.0
26
87415
0
0
0
2012-01-01 01:00:00
0.0
26
87602
0
0
0
2012-01-01 02:00:00
0.0
30
87788
0
0
0
2012-01-01 03:00:00
0.0
30
87554
0
0
0
2012-01-01 04:00:00
0.0
27
87321
0
0
0
2012-01-01 05:00:00
0.0
26
87087
0
0
0
2012-01-01 06:00:00
0.0
27
87096
0
0
0
2012-01-01 07:00:00
0.0
34
87140
20
151
11
2012-01-01 08:00:00
0.0
61
87185
164
522
37
2012-01-01 09:00:00
0.0
95
87229
369
812
58
2012-01-01 10:00:00
1.0
108
87229
568
931
68
2012-01-01 11:00:00
2.1
160
87229
717
981
75
2012-01-01 12:00:00
1.8
135
87273
800
999
79
2012-01-01 13:00:00
1.5
160
87316
810
998
80
2012-01-01 14:00:00
1.3
164
87302
747
977
79
2012-01-01 15:00:00
1.2
176
87287
617
932
74
2012-01-01 16:00:00
1.0
140
87273
433
846
65
2012-01-01 17:00:00
0.0
198
87185
219
650
46
2012-01-01 18:00:00
0.0
221
87104
0
0
0
2012-01-01 19:00:00
0.0
269
87101
0
0
0
2012-01-01 20:00:00
0.0
50
87115
0
0
0
2012-01-01 21:00:00
0.2
85
87080
0
0
0
2012-01-01 22:00:00
0.5
89
87089
0
0
0
2012-01-01 23:00:00
0.8
93
87143
0
0
0