Pandas:如何将实际数据DataFrame映射到理想时间线并填充NaN?
解决方案:将实际股票数据映射到理想时间线并填充NaN
方法一:使用左连接(merge)
以理想时间线为基准,通过左连接保留所有预期时间点,缺失数据自动填充NaN:
- 先确保两个DataFrame的
datetime列为时间类型(若原始数据是字符串格式) - 执行左连接操作
import pandas as pd # 转换datetime列为datetime类型(若原始数据是字符串) df_ideal['datetime'] = pd.to_datetime(df_ideal['datetime']) df_real['datetime'] = pd.to_datetime(df_real['datetime']) # 左连接:保留理想时间线的所有时间点,缺失数据自动填充NaN result_df = pd.merge(df_ideal, df_real, on='datetime', how='left')
方法二:使用reindex重置索引
通过将实际数据的索引设为datetime,再用理想时间线的时间序列重新索引,快速补全缺失值:
# 转换datetime类型 df_ideal['datetime'] = pd.to_datetime(df_ideal['datetime']) df_real['datetime'] = pd.to_datetime(df_real['datetime']) # 将实际数据按datetime设为索引,重新匹配理想时间线的时间点 df_real.set_index('datetime', inplace=True) result_df = df_real.reindex(df_ideal['datetime']).reset_index()
两种方法都能得到你期望的结果:理想时间线的所有时间点都被保留,缺失时段的对应列自动填充NaN。
内容的提问来源于stack exchange,提问作者wdsky
相关产品推荐
相关产品推荐

