I have a dataframe in which each user can log multiple entries across a few days. It looks a bit like this:
DATE USER TYPE MORNING AFTN NIGHT FOOD BVG
01/11/2019 A Bvg 1 0 1 - Water
01/11/2019 A Bvg 1 0 0 - Juice
01/11/2019 A Food 0 1 1 Rice -
01/11/2019 A Food 1 0 0 Noodle -
02/11/2019 A Bvg 1 0 0 - Coffee
02/11/2019 A Food 0 0 1 Bread -
02/11/2019 A Bvg 0 0 1 - Tea
01/11/2019 B Bvg 1 0 0 - Water
01/11/2019 B Bvg 0 1 0 - Tea
01/11/2019 B Food 1 0 0 Rice -
I need to identify all the combinations of Bvg/Food within the same day and same time. The problem is that the TIME data come in multiple binary columns -- I'll need to find a bvg/food combination that both has the value '1' within the sub-group, and identify which time (MORNING/AFTN/NIGHT) does the combination fall onto.
The final dataframe should have the food/bvg combination, and a single time column. For example for the dataset above, the expected outcome would be:
TIME COMBINATION
MORNING Water, Noodle
MORNING Juice, Noodle
NIGHT Water, Rice
NIGHT Tea, Bread
MORNING Water, Rice
The combinations needs to be of only 1 food & 1 beverage
I've tried conflating the TIME column into a new column of a joint string, for example:
DATE USER TYPE MORNING AFTN NIGHT FOOD BVG TIME
01/11/2019 A Bvg 1 0 1 - Water MORNING, NIGHT
And grouped the data by date, user, and time -- but I cannot limit the combination to just two.
I'm quite new to python and I'm flummoxed if there's any way to do this, any help or clue would be very appreciated