Add post-period total voice and data traffic columns to multi-RAT availability analysis output
Browse files
apps/kpi_analysis/trafic_analysis.py
CHANGED
|
@@ -564,8 +564,11 @@ def analyze_multirat_availability(
|
|
| 564 |
|
| 565 |
agg_dict = {col: "mean" for col in rat_cols}
|
| 566 |
|
| 567 |
-
|
| 568 |
-
|
|
|
|
|
|
|
|
|
|
| 569 |
|
| 570 |
rename_map_pre = {
|
| 571 |
"2g_tch_avail": "2g_avail_pre",
|
|
@@ -583,6 +586,25 @@ def analyze_multirat_availability(
|
|
| 583 |
|
| 584 |
multi = pd.merge(pre, post, on="code", how="outer")
|
| 585 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 586 |
if "City" in df.columns:
|
| 587 |
city_df = df[["code", "City"]].drop_duplicates("code")
|
| 588 |
multi = pd.merge(multi, city_df, on="code", how="left")
|
|
@@ -635,6 +657,8 @@ def analyze_multirat_availability(
|
|
| 635 |
"3g_avail_post",
|
| 636 |
"lte_avail_pre",
|
| 637 |
"lte_avail_post",
|
|
|
|
|
|
|
| 638 |
"ok_2g_post",
|
| 639 |
"ok_3g_post",
|
| 640 |
"ok_lte_post",
|
|
|
|
| 564 |
|
| 565 |
agg_dict = {col: "mean" for col in rat_cols}
|
| 566 |
|
| 567 |
+
df_pre = df[df["period"] == "pre"]
|
| 568 |
+
df_post = df[df["period"] == "post"]
|
| 569 |
+
|
| 570 |
+
pre = df_pre.groupby("code", as_index=False).agg(agg_dict)
|
| 571 |
+
post = df_post.groupby("code", as_index=False).agg(agg_dict)
|
| 572 |
|
| 573 |
rename_map_pre = {
|
| 574 |
"2g_tch_avail": "2g_avail_pre",
|
|
|
|
| 586 |
|
| 587 |
multi = pd.merge(pre, post, on="code", how="outer")
|
| 588 |
|
| 589 |
+
# Add post-period total traffic per site
|
| 590 |
+
if not df_post.empty and {
|
| 591 |
+
"total_voice_trafic",
|
| 592 |
+
"total_data_trafic",
|
| 593 |
+
}.issubset(df_post.columns):
|
| 594 |
+
post_traffic = (
|
| 595 |
+
df_post.groupby("code", as_index=False)[
|
| 596 |
+
["total_voice_trafic", "total_data_trafic"]
|
| 597 |
+
]
|
| 598 |
+
.sum()
|
| 599 |
+
.rename(
|
| 600 |
+
columns={
|
| 601 |
+
"total_voice_trafic": "post_total_voice_trafic",
|
| 602 |
+
"total_data_trafic": "post_total_data_trafic",
|
| 603 |
+
}
|
| 604 |
+
)
|
| 605 |
+
)
|
| 606 |
+
multi = pd.merge(multi, post_traffic, on="code", how="left")
|
| 607 |
+
|
| 608 |
if "City" in df.columns:
|
| 609 |
city_df = df[["code", "City"]].drop_duplicates("code")
|
| 610 |
multi = pd.merge(multi, city_df, on="code", how="left")
|
|
|
|
| 657 |
"3g_avail_post",
|
| 658 |
"lte_avail_pre",
|
| 659 |
"lte_avail_post",
|
| 660 |
+
"post_total_voice_trafic",
|
| 661 |
+
"post_total_data_trafic",
|
| 662 |
"ok_2g_post",
|
| 663 |
"ok_3g_post",
|
| 664 |
"ok_lte_post",
|