I have a problem with pandas DataFrame - I don't understand how I can create new rows and merge them with a dictionary.
My theoretical situation, that I have daily reports from salesmen, who check whether Network Name
have particular Category Name
on their shelfs. All salesmen simply fill the report and indicate their visit as VisitorID
and if a Network Name
don't have any Category Name
they just don't write anything.
I need to create a new report, where missing Category Name
will be filled with zeros.
For instanse, I have next report:
shops = [{'VisitorID': '1434', 'Network Name': 'Sela', 'Category Name': 'Fruits', 'Value': 10},
{'VisitorID': '1434', 'Network Name': 'Sela', 'Category Name': 'Tobacco', 'Value': 20},
{'VisitorID': '1301', 'Network Name': 'Sela', 'Category Name': 'Fruits', 'Value': 30},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Fruits', 'Value': 40},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Tobacco', 'Value': 50},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Vegetables', 'Value': 60},]
At the same time, I have a dictionary dataframe with Network Name
and Category Name
connection. Every Network Name
must have next Category Name
on their shelfs:
net_cat = [{'Network Name': 'Sela', 'Category Name': 'Fruits'},
{'Network Name': 'Sela', 'Category Name': 'Tobacco'},
{'Network Name': 'Sela', 'Category Name': 'Cosmetics'},
{'Network Name': 'Mega', 'Category Name': 'Paper'},
{'Network Name': 'Mega', 'Category Name': 'Vegetables'},
{'Network Name': 'Mega', 'Category Name': 'Tobacco'},
{'Network Name': 'Mega', 'Category Name': 'Fruits'}]
So, in result I want to have next dataframe:
output = [{'VisitorID': '1434', 'Network Name': 'Sela', 'Category Name': 'Fruits', 'Value': 10},
{'VisitorID': '1434', 'Network Name': 'Sela', 'Category Name': 'Tobacco', 'Value': 20},
{'VisitorID': '1434', 'Network Name': 'Sela', 'Category Name': 'Cosmetics', 'Value': 0},
{'VisitorID': '1301', 'Network Name': 'Sela', 'Category Name': 'Fruits', 'Value': 30},
{'VisitorID': '1301', 'Network Name': 'Sela', 'Category Name': 'Tobacco', 'Value': 0},
{'VisitorID': '1301', 'Network Name': 'Sela', 'Category Name': 'Paper', 'Value': 0},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Fruits', 'Value': 40},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Tobacco', 'Value': 50},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Vegetables', 'Value': 60},
{'VisitorID': '4012', 'Network Name': 'Mega', 'Category Name': 'Fruits', 'Value': 0},]
Thanks!