Code
# Print the number of tweets analyzed
print(f"Número de tweets analizados: {len(df)}")
Número de tweets analizados: 52476
+Número de tweets analizados: 79887
Eventos monitoreados
Cantidad de tweets para cada uno de los eventos monitoreados:
-Code
# Get the value counts of the "event" column in the dataframe "df"
"event"].value_counts() df[
event
-elecciones 27448
-1er debate 12588
-2do debate 12440
+elecciones balotaje 27448
+elecciones generales 19970
+1er debate 12588
+debate balotaje 12440
+2do debate 7441
Name: count, dtype: int64
Eventos monitoreados<
Fechas de eventos
Periodo cubierto para cada evento
-
+
Code
# Define a function to get the date range of a given event
@@ -4730,17 +4735,31 @@ Fechas de eventos
# Get the date ranges for each event
= get_date_range(df, "1er debate")
debate1_min, debate1_max = get_date_range(df, "2do debate")
- debate2_min, debate2_max = get_date_range(df, "elecciones")
- elecciones_min, elecciones_max
-# Print the date ranges
-print(f"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}")
-print(f"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}")
-print(f"Elecciones contempla tweets desde {elecciones_min} hasta {elecciones_max}")
+= get_date_range(df, "elecciones generales")
+ elecciones_gen_min, elecciones_gen_max = get_date_range(df, "debate balotaje")
+ debate_balotaje_min, debate_balotaje_max = get_date_range(
+ elecciones_balotaje_min, elecciones_balotaje_max "elecciones balotaje"
+ df,
+ )
+# Print the date ranges
+print(f"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}")
+print(f"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}")
+print(
+f"Elecciones generales contempla tweets desde {elecciones_gen_min} hasta {elecciones_gen_max}"
+
+ )print(
+f"El debate del balotaje contempla tweets desde {debate_balotaje_min} hasta {debate_balotaje_max}"
+
+ )print(
+f"Elecciones del balotaje contempla tweets desde {elecciones_balotaje_min} hasta {elecciones_balotaje_max}"
+ )
El primer debate contempla tweets desde 2023-09-30 hasta 2023-10-02
-El segundo debate contempla tweets desde 2023-11-11 hasta 2023-11-13
-Elecciones contempla tweets desde 2023-11-16 hasta 2023-11-20
+El segundo debate contempla tweets desde 2023-10-07 hasta 2023-10-09
+Elecciones generales contempla tweets desde 2023-10-19 hasta 2023-10-23
+El debate del balotaje contempla tweets desde 2023-11-11 hasta 2023-11-13
+Elecciones del balotaje contempla tweets desde 2023-11-16 hasta 2023-11-20
@@ -4749,7 +4768,7 @@ Ataques identificado
NOTA: Un tweet puede tener diversas etiquetas
-
+
Code
# Subset of dataframe `df` containing only rows with non-null values in "label" and "to_journalist" columns
@@ -4761,50 +4780,52 @@ Ataques identificado
)
-En los datos se identificaron 2950 publicaciones etiquetadas como ataques.
+En los datos se identificaron 4319 publicaciones etiquetadas como ataques.
Ranking the periodistas más atacados
-
+
Code
"to_journalist"].value_counts() attacks[
-
+
to_journalist
-@diegobranca 418
-@JonatanViale 373
-@Angelalerena 326
-@Cris_noticias 266
-@odonnellmaria 256
-@edufeiok 244
-@rialjorge 175
-@robdnavarro 159
-@guadavazquez 136
-@luisnovaresio 99
-@vivicanosaok 81
-@majulluis 78
-@mjolivan 62
-@rominamanguel 57
-@NANCYPAZOS 55
-@nbg__ 44
-@Gatosylvestre 34
-@ischargro 26
-@anaecorrea 14
-@cyngarciaradio 11
-@hindelita 7
+@diegobranca 712
+@Cris_noticias 427
+@JonatanViale 421
+@Angelalerena 409
+@edufeiok 399
+@rialjorge 261
+@odonnellmaria 258
+@guadavazquez 216
+@robdnavarro 209
+@vivicanosaok 159
+@luisnovaresio 154
+@cyngarciaradio 152
+@rominamanguel 95
+@majulluis 85
+@mjolivan 72
+@Gatosylvestre 66
+@nbg__ 59
+@NANCYPAZOS 58
+@ischargro 27
+@anaecorrea 21
+@ertenembaum 11
+@hindelita 10
+@juliamengo 7
@aleberco 7
-@juliamengo 6
-@ertenembaum 5
-@Sietecase 2
-@soyingridbeck 2
+@alfleuco 4
+@maclorena 4
+@Marcelitaojeda 3
+@MercedesFunes 3
+@Sietecase 3
+@negropolisok 2
@wwnicolas 2
-@MercedesFunes 2
-@Marcelitaojeda 1
-@negropolisok 1
-@maclorena 1
+@soyingridbeck 2
+@monigps 1
Name: count, dtype: int64
@@ -4814,81 +4835,83 @@
NOTA: Clasificación binaria
-
+
Code
"journalist_genre"].value_counts() attacks[
-
+
journalist_genre
-H 1622
-M 1328
+H 2361
+M 1958
Name: count, dtype: int64
Hombres periodistas más atacados
-
+
Code
= attacks.loc[attacks["journalist_genre"].isin(["H"])]
attacks_men "to_journalist"].value_counts() attacks_men[
-
+
to_journalist
-@diegobranca 418
-@JonatanViale 373
-@edufeiok 244
-@rialjorge 175
-@robdnavarro 159
-@luisnovaresio 99
-@majulluis 78
-@Gatosylvestre 34
-@ischargro 26
+@diegobranca 712
+@JonatanViale 421
+@edufeiok 399
+@rialjorge 261
+@robdnavarro 209
+@luisnovaresio 154
+@majulluis 85
+@Gatosylvestre 66
+@ischargro 27
+@ertenembaum 11
@aleberco 7
-@ertenembaum 5
+@alfleuco 4
+@Sietecase 3
@wwnicolas 2
-@Sietecase 2
Name: count, dtype: int64
Mujeres periodistas más atacadas
-
+
Code
= attacks.loc[attacks["journalist_genre"].isin(["M"])]
attacks_women "to_journalist"].value_counts() attacks_women[
-
+
to_journalist
-@Angelalerena 326
-@Cris_noticias 266
-@odonnellmaria 256
-@guadavazquez 136
-@vivicanosaok 81
-@mjolivan 62
-@rominamanguel 57
-@NANCYPAZOS 55
-@nbg__ 44
-@anaecorrea 14
-@cyngarciaradio 11
-@hindelita 7
-@juliamengo 6
+@Cris_noticias 427
+@Angelalerena 409
+@odonnellmaria 258
+@guadavazquez 216
+@vivicanosaok 159
+@cyngarciaradio 152
+@rominamanguel 95
+@mjolivan 72
+@nbg__ 59
+@NANCYPAZOS 58
+@anaecorrea 21
+@hindelita 10
+@juliamengo 7
+@maclorena 4
+@MercedesFunes 3
+@Marcelitaojeda 3
+@negropolisok 2
@soyingridbeck 2
-@MercedesFunes 2
-@Marcelitaojeda 1
-@negropolisok 1
-@maclorena 1
+@monigps 1
Name: count, dtype: int64
-ranking de tipos de ataques para hombres
-
+Ranking the tipos de ataques para hombres
+
Code
= [
@@ -4904,22 +4927,22 @@ conditions
= attacks_men[conditions].sum()
attacks_men_count attacks_men_count
-
-women 370
-politics 450
-appearance 646
-racism 83
-class 57
-lgbti 57
-criminal 31
-calls 21
+
+women 524
+politics 658
+appearance 910
+racism 151
+class 92
+lgbti 92
+criminal 49
+calls 33
dtype: int64
-ranking de tipos de ataques para mujeres
-
+Ranking the tipos de ataques para mujeres
+
Code
= [
@@ -4935,104 +4958,224 @@ conditions
= attacks_women[conditions].sum()
attacks_women_count attacks_women_count
-
-women 607
-politics 424
-appearance 226
-racism 63
-class 69
-lgbti 19
-criminal 8
-calls 10
+
+women 888
+politics 569
+appearance 377
+racism 117
+class 104
+lgbti 29
+criminal 14
+calls 19
dtype: int64
Número de ataques por tipo de evento
-
+
Code
"event"].value_counts() attacks[
-
+
event
-elecciones 1584
-1er debate 698
-2do debate 668
+elecciones balotaje 1584
+elecciones generales 987
+1er debate 698
+debate balotaje 668
+2do debate 382
Name: count, dtype: int64
+
+Proporción de ataques por tipo de evento
+Porcentaje de ataques por tweets recolectados para cada evento
+
+
+Code
+= df[df["event"] == "1er debate"].shape[0]
+ count_1er_debate = df[df["event"] == "2do debate"].shape[0]
+ count_2do_debate = df[df["event"] == "elecciones generales"].shape[0]
+ count_elecciones_gen = df[df["event"] == "debate balotaje"].shape[0]
+ count_debate_balotaje = df[df["event"] == "elecciones balotaje"].shape[0]
+ count_elecciones_balotaje
+
+= attacks[attacks["event"] == "1er debate"].shape[0]
+ count_attacks_1er_debate = attacks[attacks["event"] == "2do debate"].shape[0]
+ count_attacks_2do_debate = attacks[
+ count_attacks_elecciones_gen "event"] == "elecciones generales"
+ attacks[0]
+ ].shape[= attacks[attacks["event"] == "debate balotaje"].shape[0]
+ count_attacks_debate_balotaje = attacks[
+ count_attacks_elecciones_balotaje "event"] == "elecciones balotaje"
+ attacks[0]
+ ].shape[
+print(
+"El",
+ round((count_attacks_1er_debate / count_1er_debate) * 100),
+ "% del total de los tweets del 1er debate fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_2do_debate / count_2do_debate) * 100),
+ "% del total de los tweets del 2do debate fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_elecciones_gen / count_elecciones_gen) * 100),
+ "% del total de los tweets de las elecciones generales fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_debate_balotaje / count_debate_balotaje) * 100),
+ "% del total de los tweets del debate del balotaje fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_elecciones_balotaje / count_elecciones_balotaje) * 100),
+ "% del total de los tweets de las elecciones del balotaje fueron ataques",
+ )
+
+
+El 6 % del total de los tweets del 1er debate fueron ataques
+El 5 % del total de los tweets del 2do debate fueron ataques
+El 5 % del total de los tweets de las elecciones generales fueron ataques
+El 5 % del total de los tweets del debate del balotaje fueron ataques
+El 6 % del total de los tweets de las elecciones del balotaje fueron ataques
+
+
+
+
+Frecuencia de los ataques en función del número de menciones
+
+
+Code
+= (1 + 1.6 + 0.9 + 0.8 + 0.6 + 0.8) / 6
+ mj_proportion_mentions = "{:.2f}".format(mj_proportion_mentions)
+ formatted_mj
+= (0.9 + 1.1 + 0.8 + 0.6 + 0.6) / 5
+ wj_proportion_mentions = "{:.2f}".format(wj_proportion_mentions) formatted_wj
+
+
+
+
+Code
+print(
+f"Por cada 10 menciones, los periodistas hombres recibieron {formatted_mj} ataques"
+
+ )print(
+f"Por cada 10 menciones, las periodistas mujeres recibieron {formatted_wj} ataques"
+ )
+
+
+
+
+Frecuencia de los ataques en función del número de seguidores
+
+
+Code
+= (1.77 + 0.38 + 0.34 + 0.08 + 0.38 + 0.15) / 6
+ mj_proportion_followers = "{:.2f}".format(mj_proportion_followers)
+ formatted_mj
+= (0.44 + 1.37 + 0.67 + 0.79 + 0.21) / 5
+ wj_proportion_followers = "{:.2f}".format(wj_proportion_followers) formatted_wj
+
+
+
+
+Code
+print(
+f"Por cada 1K seguidores, los periodistas hombres recibieron {formatted_mj} ataques"
+
+ )print(
+f"Por cada 1K seguidores, las periodistas mujeres recibieron {formatted_wj} ataques"
+ )
+
+
+Por cada 1K seguidores, los periodistas hombres recibieron 0.52 ataques
+Por cada 1K seguidores, las periodistas mujeres recibieron 0.70 ataques
+
+
+
Actividad de los periodistas en Twitter por género
-
+
Code
-= df.dropna(subset=["from_journalist"])
- journalist_posts = journalist_posts.loc[
- men_journalist_posts "journalist_genre"].isin(["M"])
- journalist_posts[
- ]= journalist_posts.loc[
- women_journalist_posts "journalist_genre"].isin(["H"])
- journalist_posts[
- ]
-print(
-f"""Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}"""
- )
+= df.dropna(subset=["from_journalist"])
+ journalist_posts = journalist_posts.loc[
+ men_journalist_posts "journalist_genre"].isin(["M"])
+ journalist_posts[
+ ]= journalist_posts.loc[
+ women_journalist_posts "journalist_genre"].isin(["H"])
+ journalist_posts[
+ ]
+print(
+f"""Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}"""
+ )
-Tweets publicados por periodistas hombres: 640
-Tweets publicados por periodistas mujeres: 292
+Tweets publicados por periodistas hombres: 1223
+Tweets publicados por periodistas mujeres: 489
Ranking de periodistas más activos
-
+
Code
-= df["from_journalist"].value_counts()
- journalist_activity journalist_activity
+= df["from_journalist"].value_counts()
+ journalist_activity journalist_activity
-
+
from_journalist
-@anaecorrea 105
-@rominamanguel 61
-@rialjorge 61
-@diegobranca 60
-@guadavazquez 55
-@odonnellmaria 45
-@Cris_noticias 42
-@SilvinaMolina 36
-@NANCYPAZOS 35
-@hindelita 35
-@majulluis 32
-@soyingridbeck 31
-@Marcelitaojeda 27
-@nbg__ 25
-@Gatosylvestre 25
-@edufeiok 24
-@luisnovaresio 24
-@monigps 23
-@robdnavarro 23
-@Angelalerena 22
-@mjolivan 20
-@MercedesFunes 18
-@maclorena 13
-@vivicanosaok 12
-@aleberco 11
+@anaecorrea 206
+@guadavazquez 127
+@rialjorge 99
+@diegobranca 86
+@SilvinaMolina 83
+@rominamanguel 80
+@Angelalerena 80
+@nbg__ 71
+@NANCYPAZOS 70
+@hindelita 66
+@Cris_noticias 64
+@Marcelitaojeda 53
+@odonnellmaria 49
+@Gatosylvestre 49
+@soyingridbeck 48
+@luisnovaresio 47
+@edufeiok 46
+@monigps 44
+@mjolivan 39
+@majulluis 37
+@robdnavarro 31
+@vivicanosaok 20
+@cyngarciaradio 20
+@MercedesFunes 20
+@JonatanViale 20
+@maclorena 18
+@ertenembaum 16
+@aleberco 15
+@SANTIAGODELMORO 13
+@ischargro 13
+@juliamengo 13
+@mafito11 12
+@FlorHalfon 11
+@SoleVallejos 11
+@Sietecase 11
@silviafbarrio 9
-@juliamengo 9
-@cyngarciaradio 9
-@JonatanViale 8
-@Sietecase 7
-@SANTIAGODELMORO 7
-@ischargro 7
-@mafito11 5
+@alfleuco 3
+@gabycociffi 3
+@negropolisok 2
@wwnicolas 2
-@FlorHalfon 2
-@ertenembaum 1
+@gabipellegrini3 1
+@GabrielaWeller 1
+@lucianageuna 1
+@barilirodolfo 1
@deboraplager 1
Name: count, dtype: int64
@@ -5040,43 +5183,43 @@ Rankin
Publicaciones de periodistas por evento
-
+
Code
-= men_journalist_posts.loc[
- men_debate1 "event"].isin(["1er debate"])
- men_journalist_posts[
- ]= men_debate1.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_debate1 "event"].isin(["1er debate"])
- women_journalist_posts[
- ]= women_debate1.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 1er debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+= men_journalist_posts.loc[
+ men_debate1 "event"].isin(["1er debate"])
+ men_journalist_posts[
+ ]= men_debate1.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_debate1 "event"].isin(["1er debate"])
+ women_journalist_posts[
+ ]= women_debate1.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )="Publicaciones de periodistas durante el 1er debate", width=600)
+ fig.update_layout(titletype="category")
+ fig.update_xaxes( fig.show()
-
-
+
Code
-def count_posts_by_gender(df, event):
-"""
- This function takes in a DataFrame of journalist posts and an event string,
- and returns a new DataFrame with the count of posts by date for that event
- and gender.
- """
-= df[df["event"].eq(event)] # filter posts by event
- debate_posts return (
- "dt_date").size().reset_index(name="count")
- debate_posts.groupby(# group by date and count
- )
-
-# get posts for the 2nd debate for male and female journalists
-= count_posts_by_gender(men_journalist_posts, "2do debate")
- men_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
- women_debate2
-# create a line plot of post counts by date for male and female journalists
-= px.line()
- fig
- fig.add_scatter(=men_debate2["dt_date"],
- x=men_debate2["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_debate2["dt_date"],
- x=women_debate2["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 2do debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+def count_posts_by_gender(df, event):
+"""
+ This function takes in a DataFrame of journalist posts and an event string,
+ and returns a new DataFrame with the count of posts by date for that event
+ and gender.
+ """
+= df[df["event"].eq(event)] # filter posts by event
+ debate_posts return (
+ "dt_date").size().reset_index(name="count")
+ debate_posts.groupby(# group by date and count
+ )
+
+# get posts for the 2nd debate for male and female journalists
+= count_posts_by_gender(men_journalist_posts, "2do debate")
+ men_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
+ women_debate2
+# create a line plot of post counts by date for male and female journalists
+= px.line()
+ fig
+ fig.add_scatter(=men_debate2["dt_date"],
+ x=men_debate2["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_debate2["dt_date"],
+ x=women_debate2["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )="Publicaciones de periodistas durante el 2do debate", width=600)
+ fig.update_layout(titletype="category")
+ fig.update_xaxes( fig.show()
-
-
+
Code
-= men_journalist_posts.loc[
- men_debate2 "event"].isin(["2do debate"])
- men_journalist_posts[
- ]= men_debate2.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_debate2 "event"].isin(["2do debate"])
- women_journalist_posts[
- ]= women_debate2.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 2do debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+= men_journalist_posts.loc[
+ men_elecciones_gen "event"].isin(["elecciones generales"])
+ men_journalist_posts[
+ ]= men_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_elecciones_gen "event"].isin(["elecciones generales"])
+ women_journalist_posts[
+ ]= women_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante las elecciones generales", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
-
-
+
+
+Code
+= men_journalist_posts.loc[
+ men_debate_balotaje "event"].isin(["debate balotaje"])
+ men_journalist_posts[
+ ]= men_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_debate_balotaje "event"].isin(["debate balotaje"])
+ women_journalist_posts[
+ ]= women_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante el debate del balotaje", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
+
+
+
+
+
+
+
Code
-= men_journalist_posts.loc[
- men_elecciones "event"].isin(["elecciones"])
- men_journalist_posts[
- ]= men_elecciones.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_elecciones "event"].isin(["elecciones"])
- women_journalist_posts[
- ]= women_elecciones.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante las eleciones", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+= men_journalist_posts.loc[
+ men_elecciones_balotaje "event"].isin(["elecciones balotaje"])
+ men_journalist_posts[
+ ]= men_elecciones_balotaje.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_elecciones_balotaje "event"].isin(["elecciones balotaje"])
+ women_journalist_posts[
+ ]= (
+ women_count "dt_date").size().reset_index(name="count")
+ women_elecciones_balotaje.groupby(
+ )
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante las elecciones del balotaje", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Fechas de eventos
Periodo cubierto para cada evento
-Code
# Define a function to get the date range of a given event
@@ -4730,17 +4735,31 @@ Fechas de eventos
# Get the date ranges for each event
= get_date_range(df, "1er debate")
debate1_min, debate1_max = get_date_range(df, "2do debate")
- debate2_min, debate2_max = get_date_range(df, "elecciones")
- elecciones_min, elecciones_max
-# Print the date ranges
-print(f"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}")
-print(f"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}")
-print(f"Elecciones contempla tweets desde {elecciones_min} hasta {elecciones_max}")
El primer debate contempla tweets desde 2023-09-30 hasta 2023-10-02
-El segundo debate contempla tweets desde 2023-11-11 hasta 2023-11-13
-Elecciones contempla tweets desde 2023-11-16 hasta 2023-11-20
+El segundo debate contempla tweets desde 2023-10-07 hasta 2023-10-09
+Elecciones generales contempla tweets desde 2023-10-19 hasta 2023-10-23
+El debate del balotaje contempla tweets desde 2023-11-11 hasta 2023-11-13
+Elecciones del balotaje contempla tweets desde 2023-11-16 hasta 2023-11-20
-NOTA: Un tweet puede tener diversas etiquetas
Code
# Subset of dataframe `df` containing only rows with non-null values in "label" and "to_journalist" columns
@@ -4761,50 +4780,52 @@ Ataques identificado
)
En los datos se identificaron 2950 publicaciones etiquetadas como ataques.
+En los datos se identificaron 4319 publicaciones etiquetadas como ataques.
Ranking the periodistas más atacados
-Code
"to_journalist"].value_counts() attacks[
to_journalist
-@diegobranca 418
-@JonatanViale 373
-@Angelalerena 326
-@Cris_noticias 266
-@odonnellmaria 256
-@edufeiok 244
-@rialjorge 175
-@robdnavarro 159
-@guadavazquez 136
-@luisnovaresio 99
-@vivicanosaok 81
-@majulluis 78
-@mjolivan 62
-@rominamanguel 57
-@NANCYPAZOS 55
-@nbg__ 44
-@Gatosylvestre 34
-@ischargro 26
-@anaecorrea 14
-@cyngarciaradio 11
-@hindelita 7
+@diegobranca 712
+@Cris_noticias 427
+@JonatanViale 421
+@Angelalerena 409
+@edufeiok 399
+@rialjorge 261
+@odonnellmaria 258
+@guadavazquez 216
+@robdnavarro 209
+@vivicanosaok 159
+@luisnovaresio 154
+@cyngarciaradio 152
+@rominamanguel 95
+@majulluis 85
+@mjolivan 72
+@Gatosylvestre 66
+@nbg__ 59
+@NANCYPAZOS 58
+@ischargro 27
+@anaecorrea 21
+@ertenembaum 11
+@hindelita 10
+@juliamengo 7
@aleberco 7
-@juliamengo 6
-@ertenembaum 5
-@Sietecase 2
-@soyingridbeck 2
+@alfleuco 4
+@maclorena 4
+@Marcelitaojeda 3
+@MercedesFunes 3
+@Sietecase 3
+@negropolisok 2
@wwnicolas 2
-@MercedesFunes 2
-@Marcelitaojeda 1
-@negropolisok 1
-@maclorena 1
+@soyingridbeck 2
+@monigps 1
Name: count, dtype: int64
NOTA: Clasificación binaria
-Code
"journalist_genre"].value_counts() attacks[
journalist_genre
-H 1622
-M 1328
+H 2361
+M 1958
Name: count, dtype: int64
Hombres periodistas más atacados
-Code
= attacks.loc[attacks["journalist_genre"].isin(["H"])]
attacks_men "to_journalist"].value_counts() attacks_men[
to_journalist
-@diegobranca 418
-@JonatanViale 373
-@edufeiok 244
-@rialjorge 175
-@robdnavarro 159
-@luisnovaresio 99
-@majulluis 78
-@Gatosylvestre 34
-@ischargro 26
+@diegobranca 712
+@JonatanViale 421
+@edufeiok 399
+@rialjorge 261
+@robdnavarro 209
+@luisnovaresio 154
+@majulluis 85
+@Gatosylvestre 66
+@ischargro 27
+@ertenembaum 11
@aleberco 7
-@ertenembaum 5
+@alfleuco 4
+@Sietecase 3
@wwnicolas 2
-@Sietecase 2
Name: count, dtype: int64
Mujeres periodistas más atacadas
-Code
= attacks.loc[attacks["journalist_genre"].isin(["M"])]
attacks_women "to_journalist"].value_counts() attacks_women[
to_journalist
-@Angelalerena 326
-@Cris_noticias 266
-@odonnellmaria 256
-@guadavazquez 136
-@vivicanosaok 81
-@mjolivan 62
-@rominamanguel 57
-@NANCYPAZOS 55
-@nbg__ 44
-@anaecorrea 14
-@cyngarciaradio 11
-@hindelita 7
-@juliamengo 6
+@Cris_noticias 427
+@Angelalerena 409
+@odonnellmaria 258
+@guadavazquez 216
+@vivicanosaok 159
+@cyngarciaradio 152
+@rominamanguel 95
+@mjolivan 72
+@nbg__ 59
+@NANCYPAZOS 58
+@anaecorrea 21
+@hindelita 10
+@juliamengo 7
+@maclorena 4
+@MercedesFunes 3
+@Marcelitaojeda 3
+@negropolisok 2
@soyingridbeck 2
-@MercedesFunes 2
-@Marcelitaojeda 1
-@negropolisok 1
-@maclorena 1
+@monigps 1
Name: count, dtype: int64
ranking de tipos de ataques para hombres
-Ranking the tipos de ataques para hombres
+Code
= [
@@ -4904,22 +4927,22 @@ conditions
= attacks_men[conditions].sum()
attacks_men_count attacks_men_count
women 370
-politics 450
-appearance 646
-racism 83
-class 57
-lgbti 57
-criminal 31
-calls 21
+
+women 524
+politics 658
+appearance 910
+racism 151
+class 92
+lgbti 92
+criminal 49
+calls 33
dtype: int64
ranking de tipos de ataques para mujeres
-Ranking the tipos de ataques para mujeres
+Code
= [
@@ -4935,104 +4958,224 @@ conditions
= attacks_women[conditions].sum()
attacks_women_count attacks_women_count
women 607
-politics 424
-appearance 226
-racism 63
-class 69
-lgbti 19
-criminal 8
-calls 10
+
+women 888
+politics 569
+appearance 377
+racism 117
+class 104
+lgbti 29
+criminal 14
+calls 19
dtype: int64
Número de ataques por tipo de evento
-Code
"event"].value_counts() attacks[
event
-elecciones 1584
-1er debate 698
-2do debate 668
+elecciones balotaje 1584
+elecciones generales 987
+1er debate 698
+debate balotaje 668
+2do debate 382
Name: count, dtype: int64
Proporción de ataques por tipo de evento
+Porcentaje de ataques por tweets recolectados para cada evento
+Code
+= df[df["event"] == "1er debate"].shape[0]
+ count_1er_debate = df[df["event"] == "2do debate"].shape[0]
+ count_2do_debate = df[df["event"] == "elecciones generales"].shape[0]
+ count_elecciones_gen = df[df["event"] == "debate balotaje"].shape[0]
+ count_debate_balotaje = df[df["event"] == "elecciones balotaje"].shape[0]
+ count_elecciones_balotaje
+
+= attacks[attacks["event"] == "1er debate"].shape[0]
+ count_attacks_1er_debate = attacks[attacks["event"] == "2do debate"].shape[0]
+ count_attacks_2do_debate = attacks[
+ count_attacks_elecciones_gen "event"] == "elecciones generales"
+ attacks[0]
+ ].shape[= attacks[attacks["event"] == "debate balotaje"].shape[0]
+ count_attacks_debate_balotaje = attacks[
+ count_attacks_elecciones_balotaje "event"] == "elecciones balotaje"
+ attacks[0]
+ ].shape[
+print(
+"El",
+ round((count_attacks_1er_debate / count_1er_debate) * 100),
+ "% del total de los tweets del 1er debate fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_2do_debate / count_2do_debate) * 100),
+ "% del total de los tweets del 2do debate fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_elecciones_gen / count_elecciones_gen) * 100),
+ "% del total de los tweets de las elecciones generales fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_debate_balotaje / count_debate_balotaje) * 100),
+ "% del total de los tweets del debate del balotaje fueron ataques",
+
+ )print(
+"El",
+ round((count_attacks_elecciones_balotaje / count_elecciones_balotaje) * 100),
+ "% del total de los tweets de las elecciones del balotaje fueron ataques",
+ )
El 6 % del total de los tweets del 1er debate fueron ataques
+El 5 % del total de los tweets del 2do debate fueron ataques
+El 5 % del total de los tweets de las elecciones generales fueron ataques
+El 5 % del total de los tweets del debate del balotaje fueron ataques
+El 6 % del total de los tweets de las elecciones del balotaje fueron ataques
+Frecuencia de los ataques en función del número de menciones
+Code
+= (1 + 1.6 + 0.9 + 0.8 + 0.6 + 0.8) / 6
+ mj_proportion_mentions = "{:.2f}".format(mj_proportion_mentions)
+ formatted_mj
+= (0.9 + 1.1 + 0.8 + 0.6 + 0.6) / 5
+ wj_proportion_mentions = "{:.2f}".format(wj_proportion_mentions) formatted_wj
Code
+print(
+f"Por cada 10 menciones, los periodistas hombres recibieron {formatted_mj} ataques"
+
+ )print(
+f"Por cada 10 menciones, las periodistas mujeres recibieron {formatted_wj} ataques"
+ )
Frecuencia de los ataques en función del número de seguidores
+Code
+= (1.77 + 0.38 + 0.34 + 0.08 + 0.38 + 0.15) / 6
+ mj_proportion_followers = "{:.2f}".format(mj_proportion_followers)
+ formatted_mj
+= (0.44 + 1.37 + 0.67 + 0.79 + 0.21) / 5
+ wj_proportion_followers = "{:.2f}".format(wj_proportion_followers) formatted_wj
Code
+print(
+f"Por cada 1K seguidores, los periodistas hombres recibieron {formatted_mj} ataques"
+
+ )print(
+f"Por cada 1K seguidores, las periodistas mujeres recibieron {formatted_wj} ataques"
+ )
Por cada 1K seguidores, los periodistas hombres recibieron 0.52 ataques
+Por cada 1K seguidores, las periodistas mujeres recibieron 0.70 ataques
+Actividad de los periodistas en Twitter por género
-Code
-= df.dropna(subset=["from_journalist"])
- journalist_posts = journalist_posts.loc[
- men_journalist_posts "journalist_genre"].isin(["M"])
- journalist_posts[
- ]= journalist_posts.loc[
- women_journalist_posts "journalist_genre"].isin(["H"])
- journalist_posts[
- ]
-print(
-f"""Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}"""
- )
= df.dropna(subset=["from_journalist"])
+ journalist_posts = journalist_posts.loc[
+ men_journalist_posts "journalist_genre"].isin(["M"])
+ journalist_posts[
+ ]= journalist_posts.loc[
+ women_journalist_posts "journalist_genre"].isin(["H"])
+ journalist_posts[
+ ]
+print(
+f"""Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}"""
+ )
Tweets publicados por periodistas hombres: 640
-Tweets publicados por periodistas mujeres: 292
+Tweets publicados por periodistas hombres: 1223
+Tweets publicados por periodistas mujeres: 489
Ranking de periodistas más activos
-Code
-= df["from_journalist"].value_counts()
- journalist_activity journalist_activity
= df["from_journalist"].value_counts()
+ journalist_activity journalist_activity
from_journalist
-@anaecorrea 105
-@rominamanguel 61
-@rialjorge 61
-@diegobranca 60
-@guadavazquez 55
-@odonnellmaria 45
-@Cris_noticias 42
-@SilvinaMolina 36
-@NANCYPAZOS 35
-@hindelita 35
-@majulluis 32
-@soyingridbeck 31
-@Marcelitaojeda 27
-@nbg__ 25
-@Gatosylvestre 25
-@edufeiok 24
-@luisnovaresio 24
-@monigps 23
-@robdnavarro 23
-@Angelalerena 22
-@mjolivan 20
-@MercedesFunes 18
-@maclorena 13
-@vivicanosaok 12
-@aleberco 11
+@anaecorrea 206
+@guadavazquez 127
+@rialjorge 99
+@diegobranca 86
+@SilvinaMolina 83
+@rominamanguel 80
+@Angelalerena 80
+@nbg__ 71
+@NANCYPAZOS 70
+@hindelita 66
+@Cris_noticias 64
+@Marcelitaojeda 53
+@odonnellmaria 49
+@Gatosylvestre 49
+@soyingridbeck 48
+@luisnovaresio 47
+@edufeiok 46
+@monigps 44
+@mjolivan 39
+@majulluis 37
+@robdnavarro 31
+@vivicanosaok 20
+@cyngarciaradio 20
+@MercedesFunes 20
+@JonatanViale 20
+@maclorena 18
+@ertenembaum 16
+@aleberco 15
+@SANTIAGODELMORO 13
+@ischargro 13
+@juliamengo 13
+@mafito11 12
+@FlorHalfon 11
+@SoleVallejos 11
+@Sietecase 11
@silviafbarrio 9
-@juliamengo 9
-@cyngarciaradio 9
-@JonatanViale 8
-@Sietecase 7
-@SANTIAGODELMORO 7
-@ischargro 7
-@mafito11 5
+@alfleuco 3
+@gabycociffi 3
+@negropolisok 2
@wwnicolas 2
-@FlorHalfon 2
-@ertenembaum 1
+@gabipellegrini3 1
+@GabrielaWeller 1
+@lucianageuna 1
+@barilirodolfo 1
@deboraplager 1
Name: count, dtype: int64
Rankin
Publicaciones de periodistas por evento
-
+
Code
-= men_journalist_posts.loc[
- men_debate1 "event"].isin(["1er debate"])
- men_journalist_posts[
- ]= men_debate1.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_debate1 "event"].isin(["1er debate"])
- women_journalist_posts[
- ]= women_debate1.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 1er debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+= men_journalist_posts.loc[
+ men_debate1 "event"].isin(["1er debate"])
+ men_journalist_posts[
+ ]= men_debate1.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_debate1 "event"].isin(["1er debate"])
+ women_journalist_posts[
+ ]= women_debate1.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )="Publicaciones de periodistas durante el 1er debate", width=600)
+ fig.update_layout(titletype="category")
+ fig.update_xaxes( fig.show()
-
-
+
Code
-def count_posts_by_gender(df, event):
-"""
- This function takes in a DataFrame of journalist posts and an event string,
- and returns a new DataFrame with the count of posts by date for that event
- and gender.
- """
-= df[df["event"].eq(event)] # filter posts by event
- debate_posts return (
- "dt_date").size().reset_index(name="count")
- debate_posts.groupby(# group by date and count
- )
-
-# get posts for the 2nd debate for male and female journalists
-= count_posts_by_gender(men_journalist_posts, "2do debate")
- men_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
- women_debate2
-# create a line plot of post counts by date for male and female journalists
-= px.line()
- fig
- fig.add_scatter(=men_debate2["dt_date"],
- x=men_debate2["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_debate2["dt_date"],
- x=women_debate2["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 2do debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+def count_posts_by_gender(df, event):
+"""
+ This function takes in a DataFrame of journalist posts and an event string,
+ and returns a new DataFrame with the count of posts by date for that event
+ and gender.
+ """
+= df[df["event"].eq(event)] # filter posts by event
+ debate_posts return (
+ "dt_date").size().reset_index(name="count")
+ debate_posts.groupby(# group by date and count
+ )
+
+# get posts for the 2nd debate for male and female journalists
+= count_posts_by_gender(men_journalist_posts, "2do debate")
+ men_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
+ women_debate2
+# create a line plot of post counts by date for male and female journalists
+= px.line()
+ fig
+ fig.add_scatter(=men_debate2["dt_date"],
+ x=men_debate2["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_debate2["dt_date"],
+ x=women_debate2["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )="Publicaciones de periodistas durante el 2do debate", width=600)
+ fig.update_layout(titletype="category")
+ fig.update_xaxes( fig.show()
-
-
+
Code
-= men_journalist_posts.loc[
- men_debate2 "event"].isin(["2do debate"])
- men_journalist_posts[
- ]= men_debate2.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_debate2 "event"].isin(["2do debate"])
- women_journalist_posts[
- ]= women_debate2.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 2do debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+= men_journalist_posts.loc[
+ men_elecciones_gen "event"].isin(["elecciones generales"])
+ men_journalist_posts[
+ ]= men_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_elecciones_gen "event"].isin(["elecciones generales"])
+ women_journalist_posts[
+ ]= women_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante las elecciones generales", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
-
-
+
+
+Code
+= men_journalist_posts.loc[
+ men_debate_balotaje "event"].isin(["debate balotaje"])
+ men_journalist_posts[
+ ]= men_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_debate_balotaje "event"].isin(["debate balotaje"])
+ women_journalist_posts[
+ ]= women_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante el debate del balotaje", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
+
+
+
+
+
+
+
Code
-= men_journalist_posts.loc[
- men_elecciones "event"].isin(["elecciones"])
- men_journalist_posts[
- ]= men_elecciones.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_elecciones "event"].isin(["elecciones"])
- women_journalist_posts[
- ]= women_elecciones.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante las eleciones", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
+= men_journalist_posts.loc[
+ men_elecciones_balotaje "event"].isin(["elecciones balotaje"])
+ men_journalist_posts[
+ ]= men_elecciones_balotaje.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_elecciones_balotaje "event"].isin(["elecciones balotaje"])
+ women_journalist_posts[
+ ]= (
+ women_count "dt_date").size().reset_index(name="count")
+ women_elecciones_balotaje.groupby(
+ )
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante las elecciones del balotaje", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Publicaciones de periodistas por evento
-Code
-= men_journalist_posts.loc[
- men_debate1 "event"].isin(["1er debate"])
- men_journalist_posts[
- ]= men_debate1.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_debate1 "event"].isin(["1er debate"])
- women_journalist_posts[
- ]= women_debate1.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 1er debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
= men_journalist_posts.loc[
+ men_debate1 "event"].isin(["1er debate"])
+ men_journalist_posts[
+ ]= men_debate1.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_debate1 "event"].isin(["1er debate"])
+ women_journalist_posts[
+ ]= women_debate1.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )="Publicaciones de periodistas durante el 1er debate", width=600)
+ fig.update_layout(titletype="category")
+ fig.update_xaxes( fig.show()
Code
-def count_posts_by_gender(df, event):
-"""
- This function takes in a DataFrame of journalist posts and an event string,
- and returns a new DataFrame with the count of posts by date for that event
- and gender.
- """
-= df[df["event"].eq(event)] # filter posts by event
- debate_posts return (
- "dt_date").size().reset_index(name="count")
- debate_posts.groupby(# group by date and count
- )
-
-# get posts for the 2nd debate for male and female journalists
-= count_posts_by_gender(men_journalist_posts, "2do debate")
- men_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
- women_debate2
-# create a line plot of post counts by date for male and female journalists
-= px.line()
- fig
- fig.add_scatter(=men_debate2["dt_date"],
- x=men_debate2["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_debate2["dt_date"],
- x=women_debate2["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 2do debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
def count_posts_by_gender(df, event):
+"""
+ This function takes in a DataFrame of journalist posts and an event string,
+ and returns a new DataFrame with the count of posts by date for that event
+ and gender.
+ """
+= df[df["event"].eq(event)] # filter posts by event
+ debate_posts return (
+ "dt_date").size().reset_index(name="count")
+ debate_posts.groupby(# group by date and count
+ )
+
+# get posts for the 2nd debate for male and female journalists
+= count_posts_by_gender(men_journalist_posts, "2do debate")
+ men_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
+ women_debate2
+# create a line plot of post counts by date for male and female journalists
+= px.line()
+ fig
+ fig.add_scatter(=men_debate2["dt_date"],
+ x=men_debate2["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_debate2["dt_date"],
+ x=women_debate2["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )="Publicaciones de periodistas durante el 2do debate", width=600)
+ fig.update_layout(titletype="category")
+ fig.update_xaxes( fig.show()
Code
-= men_journalist_posts.loc[
- men_debate2 "event"].isin(["2do debate"])
- men_journalist_posts[
- ]= men_debate2.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_debate2 "event"].isin(["2do debate"])
- women_journalist_posts[
- ]= women_debate2.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante el 2do debate", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
= men_journalist_posts.loc[
+ men_elecciones_gen "event"].isin(["elecciones generales"])
+ men_journalist_posts[
+ ]= men_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_elecciones_gen "event"].isin(["elecciones generales"])
+ women_journalist_posts[
+ ]= women_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante las elecciones generales", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
Code
+= men_journalist_posts.loc[
+ men_debate_balotaje "event"].isin(["debate balotaje"])
+ men_journalist_posts[
+ ]= men_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_debate_balotaje "event"].isin(["debate balotaje"])
+ women_journalist_posts[
+ ]= women_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
+ women_count
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante el debate del balotaje", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()
Code
-= men_journalist_posts.loc[
- men_elecciones "event"].isin(["elecciones"])
- men_journalist_posts[
- ]= men_elecciones.groupby("dt_date").size().reset_index(name="count")
- men_count
-= women_journalist_posts.loc[
- women_elecciones "event"].isin(["elecciones"])
- women_journalist_posts[
- ]= women_elecciones.groupby("dt_date").size().reset_index(name="count")
- women_count
-= px.line()
- fig
- fig.add_scatter(=men_count["dt_date"],
- x=men_count["count"],
- y="Hombres",
- name=dict(color="orange"),
- line="posts: %{y}",
- hovertemplate
- )
- fig.add_scatter(=women_count["dt_date"],
- x=women_count["count"],
- y="Mujeres",
- name=dict(color="purple"),
- line="posts: %{y}",
- hovertemplate
- )="Publicaciones de periodistas durante las eleciones", width=600)
- fig.update_layout(titletype="category")
- fig.update_xaxes( fig.show()
= men_journalist_posts.loc[
+ men_elecciones_balotaje "event"].isin(["elecciones balotaje"])
+ men_journalist_posts[
+ ]= men_elecciones_balotaje.groupby("dt_date").size().reset_index(name="count")
+ men_count
+= women_journalist_posts.loc[
+ women_elecciones_balotaje "event"].isin(["elecciones balotaje"])
+ women_journalist_posts[
+ ]= (
+ women_count "dt_date").size().reset_index(name="count")
+ women_elecciones_balotaje.groupby(
+ )
+= px.line()
+ fig
+ fig.add_scatter(=men_count["dt_date"],
+ x=men_count["count"],
+ y="Hombres",
+ name=dict(color="orange"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.add_scatter(=women_count["dt_date"],
+ x=women_count["count"],
+ y="Mujeres",
+ name=dict(color="purple"),
+ line="posts: %{y}",
+ hovertemplate
+ )
+ fig.update_layout(="Publicaciones de periodistas durante las elecciones del balotaje", width=600
+ title
+ )type="category")
+ fig.update_xaxes( fig.show()