dct = {'Report_Time': {5813: pd.Timestamp('2021-02-04 11:03:34'), 5823:
pd.Timestamp('2021-02-04 11:03:34'), 5824:
pd.Timestamp('2021-02-04 11:03:34'), 5825:
pd.Timestamp('2021-02-04 11:03:34'), 5829:
pd.Timestamp('2021-02-04 11:03:35'), 5830:
pd.Timestamp('2021-02-04 11:03:35'), 5831:
pd.Timestamp('2021-02-04 11:03:35'), 5839:
pd.Timestamp('2021-02-04 11:03:35')},
'Subsystem': {5813: 0, 5823: 0, 5824: 0, 5825: 0, 5829: 0, 5830: 0, 5831: 0, 5839: 0}, 'A': {5813: 21, 5823: 6, 5824: 18, 5825: 21, 5829: 6, 5830: 19, 5831: 21, 5839: 18}, 'B': {5813: 0, 5823: 6, 5824: 1, 5825: 0, 5829: 6, 5830: 2, 5831: 0, 5839: 1}, 'Type': {5813: 0, 5823: 0, 5824: 0, 5825: 0, 5829: 0, 5830: 0, 5831: 0, 5839: 0}, 'Meter_Value': {5813: '5236', 5823: '58', 5824: '1770', 5825: '5237', 5829: '57', 5830: '1732', 5831: '5238', 5839: '1769'}}
df = pd.DataFrame(dct)
print(df.columns)
grouped=df.groupby('Report_Time').agg(lambda x: x.tolist())
results=[ (x.index,key, list(x)) for key,x in grouped.iteritems()]
print(results)
output:
[(DatetimeIndex(['2021-02-04 11:03:34', '2021-02-04 11:03:35'], dtype='datetime64[ns]', name='Report_Time', freq=None), 'Subsystem', [[0, 0, 0, 0], [0, 0, 0, 0]]), (DatetimeIndex(['2021-02-04 11:03:34', '2021-02-04 11:03:35'], dtype='datetime64[ns]', name='Report_Time', freq=None), 'A', [[21, 6, 18, 21], [6, 19, 21, 18]]), (DatetimeIndex(['2021-02-04 11:03:34', '2021-02-04 11:03:35'], dtype='datetime64[ns]', name='Report_Time', freq=None), 'B', [[0, 6, 1, 0], [6, 2, 0, 1]]), (DatetimeIndex(['2021-02-04 11:03:34', '2021-02-04 11:03:35'], dtype='datetime64[ns]', name='Report_Time', freq=None), 'Type', [[0, 0, 0, 0], [0, 0, 0, 0]]), (DatetimeIndex(['2021-02-04 11:03:34', '2021-02-04 11:03:35'], dtype='datetime64[ns]', name='Report_Time', freq=None), 'Meter_Value', [['5236', '58', '1770', '5237'], ['57', '1732', '5238', '1769']])]
In [ ]:
tuples=[]
for my_tuples in results:
(dates,key,data)=my_tuples
for i in range(len(dates)):
print(dates[i],key,data[i])
tuples.append((dates[i],key,data[i]))
for a_tuple in tuples:
print(a_tuple)
output:
Index(['Report_Time', 'Subsystem', 'A', 'B', 'Type', 'Meter_Value'], dtype='object')
(Timestamp('2021-02-04 11:03:34'), 'Subsystem', [0, 0, 0, 0])
(Timestamp('2021-02-04 11:03:35'), 'Subsystem', [0, 0, 0, 0])
(Timestamp('2021-02-04 11:03:34'), 'A', [21, 6, 18, 21])
(Timestamp('2021-02-04 11:03:35'), 'A', [6, 19, 21, 18])
(Timestamp('2021-02-04 11:03:34'), 'B', [0, 6, 1, 0])
(Timestamp('2021-02-04 11:03:35'), 'B', [6, 2, 0, 1])
(Timestamp('2021-02-04 11:03:34'), 'Type', [0, 0, 0, 0])
(Timestamp('2021-02-04 11:03:35'), 'Type', [0, 0, 0, 0])
(Timestamp('2021-02-04 11:03:34'), 'Meter_Value', ['5236', '58', '1770', '5237'])
(Timestamp('2021-02-04 11:03:35'), 'Meter_Value', ['57', '1732', '5238', '1769'])