Pandas技术问题:基于两个DataFrame的共同Datetime生成新DataFrame
解决方案:保留两个DataFrame中Datetime交集的行
现有两个Pandas DataFrame(df1和df2),需生成一个与df1结构完全一致的新DataFrame,仅保留Datetime列值同时存在于两个DataFrame的行(注:相同Datetime在两个DataFrame中的索引可能不同)。
方法一:使用isin()快速筛选
这是最直观的实现方式,直接判断df1的Datetime是否在df2的Datetime集合中:
import pandas as pd # 假设df1和df2已加载完成 # 筛选符合条件的行 new_df = df1[df1['Datetime'].isin(df2['Datetime'])]
方法二:使用merge()内连接
通过内连接自动保留双方共有的Datetime行,同时保留df1的全部列结构:
# 仅取df2的Datetime列进行连接,避免引入多余列 new_df = pd.merge(df1, df2[['Datetime']], on='Datetime', how='inner')
关键注意事项
- 确保Datetime类型一致:如果两个DataFrame的Datetime是字符串格式,必须保证格式完全匹配(包括毫秒、时区等);更稳妥的方式是统一转换为
datetime64类型:df1['Datetime'] = pd.to_datetime(df1['Datetime']) df2['Datetime'] = pd.to_datetime(df2['Datetime'])
内容的提问来源于stack exchange,提问作者Sorae
相关产品推荐
相关产品推荐

