答案:
要将包含日期时间范围的Pandas dataframe行转换为新的dataframe,每个日期对应一行,该日期包括小时,可以使用Pandas库中的一些函数和方法来实现。
首先,我们需要确保日期时间列已经被正确地解析为Pandas的日期时间类型。可以使用pd.to_datetime()
函数将日期时间列转换为日期时间类型。假设该列名为"datetime",示例代码如下:
df['datetime'] = pd.to_datetime(df['datetime'])
接下来,我们需要按照日期和小时进行分组,并且将每个组中的所有行合并为一行。可以使用groupby()
函数和agg()
函数来完成这个任务。假设数据集中还包含其他列,例如"column1"和"column2",示例代码如下:
new_df = df.groupby([df['datetime'].dt.date, df['datetime'].dt.hour]).agg({'column1': 'sum', 'column2': 'mean'}).reset_index()
在上述代码中,我们使用dt.date
和dt.hour
来分别获取日期和小时部分,并且使用agg()
函数对"column1"进行求和,对"column2"进行均值计算。你可以根据实际需要修改聚合函数和列名。
最后,如果需要,可以将日期和小时合并为一个新的列。示例代码如下:
new_df['datetime'] = new_df['datetime'].apply(lambda x: str(x[0]) + ' ' + str(x[1]) + ':00:00')
这样,你就得到了一个新的dataframe new_df
,其中每一行都对应一个日期和小时,并包含了聚合后的结果。
关于Pandas和日期时间处理的更多信息,你可以参考腾讯云的产品文档:
领取专属 10元无门槛券
手把手带您无忧上云