Quick Recap of Dict Operations¶
Let us recap some of the important concepts and operations related to dict
. We will primarily focus on those operations which are important for aggregations and joins.
dict
contains heterogeneous type of elements.Typically it is used to represent a row in a table or a sheet. But we can also use
dict
to store the aggregated results based up on a key.We use
dict
for aggregations or joins, as we need to do a look up for a given key to update or insert.list
is not efficient for lookups.Each and every element in a
dict
contains key value pair where key is typically column name.Here are the common
dict
operations relevant to aggregrations and joins.Adding elements to the dict
Checking if the key exists
Getting value for a given key
Updating value if the key exists
As part of aggregations or joins, the output is typically a
dict
. It means we will have multiple records in the dict in the form of key value pairs.
order_count_by_date = {}
# Adding elements in dict
order_count_by_date['2014-01-01'] = 1
order_count_by_date['2014-01-02'] = 1
order_count_by_date['2014-01-03'] = 1
order_count_by_date
{'2014-01-01': 1, '2014-01-02': 1, '2014-01-03': 1}
# Checking if element exists in dict
'2014-01-01' in order_count_by_date
True
'2014-01-04' in order_count_by_date
False
# Getting value for a given key
order_count_by_date['2014-01-01']
1
order_count_by_date['2014-01-04'] # Throws KeyError exception
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-7-7dbb9ecd49d8> in <module>
----> 1 order_count_by_date['2014-01-04'] # Throws KeyError exception
KeyError: '2014-01-04'
order_count_by_date.get('2014-01-01')
1
order_count_by_date.get('2014-01-04') # Returns None
# Updating value
order_count_by_date['2014-01-01'] = 2
order_count_by_date
{'2014-01-01': 2, '2014-01-02': 1, '2014-01-03': 1}
order_count_by_date['2014-01-01'] = order_count_by_date['2014-01-01'] + 1 # Incrementing the existing value for a given key
order_count_by_date
{'2014-01-01': 3, '2014-01-02': 1, '2014-01-03': 1}
order_count_by_date['2014-01-01'] += 1 # Incrementing the existing value for a given key
order_count_by_date
{'2014-01-01': 4, '2014-01-02': 1, '2014-01-03': 1}
order_count_by_date.update({'2014-01-02': 2}) # Alternate way to update an existing element value in dict
order_count_by_date
{'2014-01-01': 2, '2014-01-02': 2, '2014-01-03': 1}