根据具有不同频率的日期列表对数据框进行切片

时间:2018-09-18 21:34:49

标签: python pandas datetime dataframe slice

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

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

1 个答案:

答案 0 :(得分:0)

我肯定有一个更优雅的解决方案,但是我怀疑您感兴趣的日期被解释为午夜(日期和分钟)。如果是这样,您将希望从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]