File size: 2,662 Bytes
33f164a
 
 
ae3451c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33f164a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import pandas as pd
import numpy as np

def remove_previous_view(counts_df):
    filtered_views_list = ['View_from_Second_Link_at_Tuas_to_sg',
                    'View_from_Second_Link_at_Tuas_to_jh',
                    'View_from_Tuas_Checkpoint_to_sg',
                    'View_from_Tuas_Checkpoint_to_jh',
                    'View_from_Woodlands_Causeway_Towards_Johor_to_sg',
                    'View_from_Woodlands_Causeway_Towards_Johor_to_jh',
                    'View_from_Woodlands_Checkpoint_Towards_BKE_to_sg',
                    'View_from_Woodlands_Checkpoint_Towards_BKE_to_jh']
    counts_df = counts_df[counts_df['view'].isin(filtered_views_list)]
    return counts_df

def merge_volumes(counts_df):
    merge_groups = {"Tuas - to SG": ["View_from_Second_Link_at_Tuas_to_sg", "View_from_Tuas_Checkpoint_to_sg"],
                "Tuas - to Johor": ['View_from_Second_Link_at_Tuas_to_jh', 'View_from_Tuas_Checkpoint_to_jh'],
                "Woodlands - to SG": ['View_from_Woodlands_Causeway_Towards_Johor_to_sg', 'View_from_Woodlands_Checkpoint_Towards_BKE_to_sg'],
                "Woodlands - to Johor": ['View_from_Woodlands_Causeway_Towards_Johor_to_jh', 'View_from_Woodlands_Checkpoint_Towards_BKE_to_jh']}
    def apply_merge_groups(row):
        for key, value in merge_groups.items():
            if row in value:
                return key
    counts_df['merge_group'] = counts_df['view'].apply(apply_merge_groups)
    counts_df = counts_df.groupby(by = ['merge_group', 'date', 'time']).sum(numeric_only = True)
    counts_df = counts_df.reset_index()
    counts_df = counts_df.rename(columns={"merge_group": "view"})

    return counts_df
    

def daily_average(counts_df):
    
    filtered_views_list = ['View_from_Second_Link_at_Tuas_to_sg',
                        'View_from_Second_Link_at_Tuas_to_jh',
                        'View_from_Tuas_Checkpoint_to_sg',
                        'View_from_Tuas_Checkpoint_to_jh',
                        'View_from_Woodlands_Causeway_Towards_Johor_to_sg',
                        'View_from_Woodlands_Causeway_Towards_Johor_to_jh',
                        'View_from_Woodlands_Checkpoint_Towards_BKE_to_sg',
                        'View_from_Woodlands_Checkpoint_Towards_BKE_to_jh']

    counts_df_filter_views = counts_df[counts_df['view'].isin(filtered_views_list)]
    counts_df_filter_views['date'] = pd.to_datetime(counts_df_filter_views['date'])
    counts_df_filter_views['day_of_week'] = counts_df_filter_views['date'].dt.day_of_week
    date_view_group = counts_df_filter_views.groupby(by=['view', 'day_of_week']).mean()
    date_view_group = date_view_group.reset_index()