首页 > 解决方案 > 基于具有不同频率的日期列表切片数据帧

问题描述

我尝试根据感兴趣的日期按行对数据框进行切片。 df_data有一个基于datetime格式的索引YYYY-MM-DD hh:mm:ss
它以 1 分钟的频率包含从 2012 年 1 月 1 日到 2018 年 6 月 30 日的数据。另一个dataframe包含一个包含感兴趣日期的列,但每天使用 format YYYY-MM-DD
我将其转换dataframe为一个名为dates_interest.

我尝试df_final = df_data[df_data.index.isin(dates_interest)]根据需要对数据帧进行切片,但df_final返回一个长度为 0 的数据帧。
我想这与不同的频率/格式有关。

标签: pythonpandasdatetimedataframeslice

解决方案


我确信有一个更优雅的解决方案,但我怀疑您感兴趣的日期被解释为午夜(日期和分钟)。如果是这样,您将希望从该 df_data 中提取日期,然后再次尝试切片。

# get a column of the days from your df_data
df_data['just_day'] = df_data.index.dt.date

# append the individual slices from each day into your df_final
df_final =pd.DataFrame()
for date_of_interest in dates_interest:
    df_final.append(df_data.loc[df_data['just_day']==date_of_interest]

推荐阅读