Jupyter Notebook中如何基于日期列新增行并生成按日期求和的数据集
问题解答
是可以通过追加匹配共有列的行来创建新数据集的,你需要的按日期合并数据、按日期汇总求和的需求可以通过Python数据处理库pandas实现,具体操作步骤如下:
1. 环境准备
首先确保你已经安装pandas,在Jupyter Notebook的单元格中运行以下代码导入库:
import pandas as pd
2. 合并多份同结构数据集(追加共有列行)
如果你有多份结构一致、包含共有列的数据集(例如多个csv文件、多个DataFrame对象),可以用pd.concat()方法完成行追加合并:
2.1 手动合并指定的多个DataFrame
假设你的原数据集为df_origin,其他待合并的数据集为df1、df2,执行以下代码即可合并为整体数据集:
# 仅保留所有数据集的共有列再合并,避免非共有列生成空值 common_cols = list(set(df_origin.columns) & set(df1.columns) & set(df2.columns)) merged_df = pd.concat( [df_origin[common_cols], df1[common_cols], df2[common_cols]], ignore_index=True # 重置行索引,避免旧索引重复 )
2.2 批量合并文件夹下所有同结构CSV文件
如果待合并的数据都存在同一个文件夹的CSV文件中,可以用以下代码批量读取合并:
import os # 替换为你存放CSV文件的文件夹路径 folder_path = './your_csv_folder' # 提取文件夹下所有CSV文件路径 csv_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.csv')] df_list = [] for file in csv_files: df = pd.read_csv(file) # 可选:统一列名格式,避免因为空格、大小写不一致导致列匹配失败 df.columns = df.columns.str.strip().str.lower() df_list.append(df) merged_df = pd.concat(df_list, ignore_index=True)
3. 按日期统计数值总和
首先确保合并后的数据集的日期列为标准日期格式,再按日期分组求和即可:
# 替换为你实际的日期列名,将列转为日期格式 merged_df['date'] = pd.to_datetime(merged_df['date']) # 按日期分组求和,替换为你实际的数值列名,如需对所有数值列求和可删除['value']部分 sum_by_date = merged_df.groupby('date', as_index=False)['value'].sum()
运行后得到的sum_by_date就是按日期统计数值总和的数据集,merged_df就是所有数据合并后的整体数据集。
内容的提问来源于stack exchange,提问作者eno2
相关产品推荐
相关产品推荐

