Pandas如何对DataFrame的DateTimeIndex与另一DataFrame的日期列执行内合并
正确实现方案
你的错误是合并时未指定正确的连接规则:scaled_data的日期存储在普通列date中,而returns的日期是索引,默认合并规则会按两个表的整数索引匹配,同时你可能误用了外连接,才会出现大量空值行。
按以下步骤操作即可得到正确结果:
- 先统一两个表的日期格式,避免字符串和DateTimeIndex类型不匹配导致的连接失效
- 调用merge方法明确指定连接键和连接方式
对应代码:
import pandas as pd # 统一日期类型 scaled_data['date'] = pd.to_datetime(scaled_data['date']) # 执行内连接 merged_df = pd.merge( left=scaled_data, right=returns[['AN8068571086']], left_on='date', right_index=True, how='inner' )
参数说明
left_on='date':指定左表scaled_data用date列作为连接匹配的键right_index=True:指定右表returns用自身的DateTimeIndex索引作为连接匹配的键how='inner':仅保留两边匹配成功的行,最终输出的行数和原始scaled_data一致为1037行,不会出现空值。
内容的提问来源于stack exchange,提问作者user3613025
相关产品推荐
相关产品推荐

