这不是以下内容的副本:filter pandas dataframe by time,因为那里提供的解决方案不能处理需要筛选的相同列类型。
我有以下 Dataframe :
i = pd.date_range('2018-04-09', periods=4, freq='1D20min')
ts = pd.DataFrame({'A': [1, 2, 3, 4],
'B':i})
ts['date'] = pd.to_datetime(ts['B']).dt.date
ts['time'] = pd.to_datetime(ts['B']).dt.time
ts = ts.drop('B', axis = 1)
我想只筛选time
列,我尝试了以下方法:
ts['time'].between_time('0:45', '0:15')
但它不工作。我得到错误:TypeError: Index must be DatetimeIndex
你知道怎么做吗?谢谢
1条答案
按热度按时间m1m5dgzv1#
编辑:没有
B
列的解决方案:如果需要按
time
列过滤,则使用Series.between
:B
色谱柱的原始溶液:创建
DatetimeIndex
,如果需要按DataFrame.between_time
过滤:再次使用
DatetimeIndex
和DatetimeIndex.indexer_between_time
求解匹配行的位置,并通过DataFrame.iloc
进行选择: