Skip to content

flowmachine.features.subscriber.handset_stats

Class HandsetStats

HandsetStats(characteristic, statistic='avg', *, subscriber_handsets)
Source: flowmachine/features/subscriber/handset_stats.py

This class calculates statistics associated with numeric fields of the TAC table, such as width, height, etc. A subscriber might use different phones for different periods of time. In order to take the different usage periods into account we must calculate weighted statistics of the desired characteristics. As such, here we calculate the weighted characteristic, weighted by the number of seconds a subscriber held that handset. Given that we only learn about changes in handset when an event occurs, this average will be biased. For instance, if a subscriber changes his handset straight after an event occur, we will be tracking the handset that the subscriber used to handle the event and not the handset he actually switched to. We will only learn about the new handset once a new event occurs. We further assume that the handset held before the first observed event in the series is equal to the handset of the first event. Likewise, we assume that the handset held after the last observed event in the series is the handset of the last event.

Attributes

Parameters

  • characteristic: {"width", "height", "depth", "weight", "display_width", "display_height"}

    Numeric handset characteristics present in the TAC table.

  • statistic: {'count', 'sum', 'avg', 'max', 'min', 'median', 'mode', 'stddev', 'variance'}, default 'sum'

    Defaults to sum, aggregation statistic over the durations.

  • subscriber_handsets: flowmachine.features.subscriber_tacs.SubscriberHandsets

    An instance of SubscriberHandsets listing the handsets associated with the subscribers during the period of observation.

Examples

s = HandsetStats("width",
    subscriber_handsets=SubscriberHandsets("2016-01-01", "2016-01-08"))
s.get_dataframe()
subscriber value 2ZdMowMXoyMByY07 30.387672 MobnrVMDK24wPRzB 28.764593 0Ze1l70j0LNgyY4w 26.664206 Nnlqka1oevEMvVrm 30.570331 gPZ7jbqlnAXR3JG5 30.049870 ... ...

Methods

cache

cache
Source: flowmachine/core/query.py

Returns
  • bool

    True is caching is switched on.

column_names

column_names
Source: flowmachine/features/subscriber/handset_stats.py

Returns the column names.

Returns
  • list of str

    List of the column names of this query.

column_names_as_string_list

column_names_as_string_list
Source: flowmachine/core/query.py

Get the column names as a comma separated list

Returns
  • str

    Comma separated list of column names

dependencies

dependencies
Source: flowmachine/core/query.py

Returns
  • set

    The set of queries which this one is directly dependent on.

fully_qualified_table_name

fully_qualified_table_name
Source: flowmachine/core/query.py

Returns a unique fully qualified name for the query to be stored as under the cache schema, based on a hash of the parameters, class, and subqueries.

Returns
  • str

    String form of the table's fqn

index_cols

index_cols
Source: flowmachine/core/query.py

A list of columns to use as indexes when storing this query.

Returns
  • ixen: list

    By default, returns the location columns if they are present and self.spatial_unit is defined, and the subscriber column.

Examples
daily_location("2016-01-01").index_cols
[['name'], '"subscriber"']

is_stored

is_stored
Source: flowmachine/core/query.py

Returns
  • bool

    True if the table is stored, and False otherwise.

query_id

query_id
Source: flowmachine/core/query.py

Generate a uniquely identifying hash of this query, based on the parameters of it and the subqueries it is composed of.

Returns
  • str

    query_id hash string

query_state

query_state
Source: flowmachine/core/query.py

Return the current query state.

Returns
  • QueryState

    The current query state

query_state_str

query_state_str
Source: flowmachine/core/query.py

Return the current query state as a string

Returns
  • str

    The current query state. The possible values are the ones defined in flowmachine.core.query_state.QueryState.

table_name

table_name
Source: flowmachine/core/query.py

Returns a uniquename for the query to be stored as, based on a hash of the parameters, class, and subqueries.

Returns
  • str

    String form of the table's fqn