我有一个多索引数据框,显示电子邮件发送的时间和天数。这是通过pandaspivot_table()
创建的
列名是小时数。指数是一天。值是发送的电子邮件数:
是否可以重新索引列以包含所有小时?从0到23。这会增加nans
的数量,但没关系。我不希望邮件在周日凌晨1点发送
我尝试使用reindex()
,首先创建一组新的列:
新栏目。这是一个从0
到23
的列表
new_hours = [i for i in range(0,24)]
print(new_hours)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
现在我将尝试重新编制索引,但得到一个值错误:
df_rides_day_hour3 = df_rides_day_hour3.reindex(labels=detailed_hours, axis=1)
ValueError: Buffer dtype mismatch, expected 'Python object' but got 'long long'
我曾尝试使用level
参数,但没有帮助
如果您需要数据帧,我已经在这里使用df.to_dict()
粘贴了它:https://pastecode.xyz/view/b5f45b52
皮科表代码day_sent'只是日期字符串的名称hour sent
是整数is_sent
是所有的{
df_rides_day_hour3 = pd.pivot_table(df[['day_sent', 'hour_sent', 'is_sent']], index=['day_sent', 'hour_sent'], aggfunc='count')
我认为您的代码不起作用,因为} 将其删除:
MultiIndex
列中只有一个第一级is_sent
。因此,可以通过^{或者,您可以通过更改
pivot_table
来避免MulitIndex
:相关问题 更多 >
编程相关推荐