如何在Pandas DataFrame中每日新增一条记录至新行?
每日追加新增数据到聚合DataFrame的方法
1. 统一日期列格式
先确保已有DataFrame和新增数据的Date列都是datetime类型,避免因格式不匹配出现重复或错误:
import pandas as pd # 转换历史数据的Date列为datetime格式 historical_df['Date'] = pd.to_datetime(historical_df['Date'])
2. 构造每日新增数据
根据每日获取数据的形式,构造对应格式的DataFrame:
单条当日数据
如果每天只获取当日的聚合值:
# 示例:2022-12-10的聚合值为0.45 new_data = pd.DataFrame({ 'Date': ['2022-12-10'], 'Agg_Value': [0.45] }) new_data['Date'] = pd.to_datetime(new_data['Date'])
批量新增数据
如果是补录遗漏日期或批量获取多条数据,直接构造结构一致的DataFrame即可。
3. 追加并去重(核心步骤)
直接追加可能导致重复日期的数据,先筛选出历史数据中没有的新增记录,再合并:
# 筛选新增数据中未存在于历史DataFrame的日期 unique_new_data = new_data[~new_data['Date'].isin(historical_df['Date'])] # 合并到历史DataFrame historical_df = pd.concat([historical_df, unique_new_data], ignore_index=True) # 可选:按日期重新排序,保持数据有序 historical_df = historical_df.sort_values('Date').reset_index(drop=True)
4. 持久化保存(可选)
如果需要长期保留更新后的数据,可保存到文件以便下次直接加载:
# 保存为CSV文件 historical_df.to_csv('aggregated_data.csv', index=False) # 下次启动时加载数据 historical_df = pd.read_csv('aggregated_data.csv', parse_dates=['Date'])
示例效果
追加后DataFrame将更新为:
Date Agg_Value 0 2022-12-07 0.43 1 2022-12-08 0.44 2 2022-12-09 0.41 3 2022-12-10 0.45 ... ... ...
内容的提问来源于stack exchange,提问作者Jiayu Zhang
相关产品推荐
相关产品推荐

