I have the below block of code,
***Scenario 1:***
def sample_function():
input = {'gw_mac': ['ac1403', 'ac15cf', 'ac15cf'], 'mac': ['820', '94c', '94c']}
df = pd.DataFrame(data=input)
unique_mac_list = [index for index, group in df.groupby(['gw_mac', 'mac'])]
print("unique_mac_list :: ", str(unique_mac_list))
if __name__ == '__main__':
print(timeit.timeit("sample_function()", setup="from __main__ import sample_function", number=10))
***Scenario 2:***
def sample_function():
input = {'gw_mac': ['ac1403', 'ac15cf', 'ac15cf'], 'mac': ['820', '94c', '94c']}
df = pd.DataFrame(data=input)
unique_mac_list = []
for index, group in df.groupby(['gw_mac', 'mac']):
unique_mac_list.append(index)
print("unique_mac_list :: ", str(unique_mac_list))
if __name__ == '__main__':
print(timeit.timeit("sample_function()", setup="from __main__ import sample_function", number=10))
The time taken to execute the above mentioned two scenarios are,
***Scenario 1:-***
0.018882042000768706
***Scenario 2:-***
0.01927675799925055
Provided both the scenario contains the same data in "bleStreamData_df". In what ways, list comprehension is efficient then looping?