The first 20 observations in my data are:
    id                                          day         hour    consumption
0   012af199245dedacf9ea0ba6eedef4e89272c7dc    Saturday    8       0.000000
1   019ebd48fe9c9ab20051e9de1d5ddfc6fd13c55b    Tuesday     16      0.000000
2   0310daaa6368cf0618f341351b8451e509da27d7    Wednesday   17      0.000000
3   04a2ddb034ff774cda02130fd59b280d55f762d7    Tuesday     16     -0.017699
4   04d61391eeea5b957847dbe08b52d88e64909dbf    Thursday    15      0.000000
5   04f1fa8b29c58e19eebf0e26169975a66ec7cbbf    Tuesday     15      0.000000
6   0561aa699b6c91c842b850c6b73ee4b3c8cbb03b    Thursday    12     -0.002597
7   059492a3600ef0b39726af2201a0ad87610a4a02    Thursday    17      0.000000
8   059fb9175372802b43b3fdcebd2a507bc89e71b0    Thursday    12     -0.001541
9   05da142ebe95e15ab30dee30d1a982d8f419dfb2    Tuesday     20     -0.003050
10  0663c2fd03deecf7f52c3e5c7c0be5c94a3292b8    Sunday      13     -0.005613
11  07040b85d9c0c0ff122b3fef3ab73eab6c53ff0e    Saturday    18      0.000000
12  07a33356cb6330b2090152d30413b224ad1c018b    Saturday    20      0.005013
13  07d67b08fab92657c699dbeec931a48c9f1cfbf7    Friday      15     -0.015675
14  07f92e8eb78f9d8ab6446ffd2649990cffce2ead    Friday      16     -0.004035
15  086cfca739da633d89100874a6c91c37e04880af    Friday      0      -0.004068
16  0a64e559b80b819b2a48a939fa96b1f3f3791e54    Monday      12     -0.007687
17  0b477ac123374072c5acf34d1d063d6ae6c4bf0b    Friday      21      0.000000
18  0bf144e77495b06fb319f4a312f09015da7c5afd    Tuesday     4       0.000000
19  0d1263d90f5a5449a1d0eb80c0f217daff646d36    Saturday    8      -0.005963
I am trying to create a heatmap by doing:
sns.heatmap(df.pivot("day", "hour", "consumption"))
But I am getting the error:
ValueError: Index contains duplicate entries, cannot reshape
I attempted using pivot_table() instead which according to the documentation accounts for this error. But then I get:
DataError: No numeric types to aggregate
Alternatively, plotting the number of the day of the week instead works:
# Convert dates into the number of the day of the week
# 0=Mon; 6=Sunday
df['day_num'] = df['timestamp'].dt.weekday
sns.heatmap(df.pivot_table(index="day_num", columns="hour", values="consumption"))
However, I'd like to keep the names (or abbreviations) in the plot.
How can I fix this?
 
     
    
