Python pandas 从 pandas 数据帧索引中删除每天的第一分钟

我的 Contract_df 数据框结构如下:


df = pd.DataFrame({'quote_ts': ['2020-05-15 14:01:00.522517', 

                                '2020-05-15 14:01:00.599999', 

                                '2020-05-15 15:00:01.234517',

                                '2020-05-16 14:00:00.312518',

                                '2020-05-16 14:01:00.582517',

                                '2020-05-17 14:00:00.122983',

                                '2020-05-17 14:02:00.524567',

                                '2020-05-18 14:00:00.522517'],

                   'price': [1000, 1200, 1300, 1000, 1400, 1800, 1900, 1600]})


df = df.set_index('quote_ts')

我需要删除每天的第一分钟,以便生成的数据框等于:


df = pd.DataFrame({'quote_ts': ['2020-05-15 15:00:01.234517',

                                '2020-05-16 14:01:00.582517',

                                '2020-05-17 14:02:00.524567'],

                   'price': [1300, 1400, 1600]})


df = df.set_index('quote_ts')

在不同的日子里,第一分钟并不总是相同的。


慕桂英546537
浏览 1598回答 2
2回答

HUX布斯

让我们尝试isin一下groupby headdf.index=pd.to_datetime(df.index)toremove = df.groupby(df.index.date).head(1).index.strftime('%Y-%m-%d %H:%M')df = df[~df.index.strftime('%Y-%m-%d %H:%M').isin(toremove)]df                            pricequote_ts                         2020-05-15 15:00:01.234517   13002020-05-16 14:01:00.582517   14002020-05-17 14:02:00.524567   1900

慕容708150

用于groupby.rank创建布尔掩码s = pd.to_datetime(df.index)m = ((s.floor('Min').to_series().groupby(s.date).rank(method='dense') > 1)                                                .to_numpy())df_final = df[m]Out[338]:                            pricequote_ts2020-05-15 15:00:01.234517   13002020-05-16 14:01:00.582517   14002020-05-17 14:02:00.524567   1900
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python