python中的过滤日期格式
我的数据框看起来像-python中的过滤日期格式,python,python-3.x,pandas,pandas-groupby,Python,Python 3.x,Pandas,Pandas Groupby,我的数据框看起来像- date value 2018-04-01 19:50:00.013 29 2018-04-01 19:55:00.012 19 2018-04-01 20:00:00.019 20 2018-04-01 20:05:00.021 43 2018-04-01 20:10:00.005 50 2018-04-01 20:15:00.019
date value
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2018-04-01 20:00:00.019 20
2018-04-01 20:05:00.021 43
2018-04-01 20:10:00.005 50
2018-04-01 20:15:00.019 42
2018-04-01 20:20:00.023 65
2018-04-01 20:25:00.013 43
2018-04-01 20:30:00.003 29
2018-04-01 20:35:00.008 49
....
...
2020-04-10 05:45:00.018 639
2020-04-10 05:50:00.008 633
2020-04-10 05:55:00.021 629
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
date value
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2018-04-01 20:00:00.019 20
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
我有近两年的数据,该数据集的时间间隔为5分钟。我只想获取这两年内从早上6点到晚上8点的数据。我的最终数据帧看起来像-
date value
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2018-04-01 20:00:00.019 20
2018-04-01 20:05:00.021 43
2018-04-01 20:10:00.005 50
2018-04-01 20:15:00.019 42
2018-04-01 20:20:00.023 65
2018-04-01 20:25:00.013 43
2018-04-01 20:30:00.003 29
2018-04-01 20:35:00.008 49
....
...
2020-04-10 05:45:00.018 639
2020-04-10 05:50:00.008 633
2020-04-10 05:55:00.021 629
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
date value
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2018-04-01 20:00:00.019 20
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
到目前为止,我已经做了-
提取最小和最大日期-
max(df['date'])
max(df['date'])
mask1 = df['date'] >= '2018-04-01 06:00:00'
mask2 = df['date'] <= '2020-04-10 20:00:00'
df = df[mask1 & mask2]
df.head()
max(df['date']
最大值(df[“日期])
mask1=df['date']>='2018-04-01 06:00:00'
mask2=df['date']使用DatetimeIndex
,因此将date
转换为索引:
df = df.set_index('date').between_time('06:00','20:00')
print (df)
value
date
2018-04-01 19:50:00.013 29
2018-04-01 19:55:00.012 19
2020-04-10 06:00:00.008 619
2020-04-10 06:05:00.011 610
您需要单独根据时间进行过滤,如下所示
import pandas as pd
import datetime
df = pd.DataFrame(['2018-04-01 19:50:00.013', '2018-04-01 20:00:00.019',
'2018-04-01 20:05:00.021'], columns=['date'])
df['date'] = pd.to_datetime(df['date'])
df['time'] = [datetime.datetime.time(d) for d in df['date']]
df[df['time'] < datetime.time(20)]
将熊猫作为pd导入
导入日期时间
df=pd.数据帧(['2018-04-01 19:50:00.013','2018-04-01 20:00:00.019',
'2018-04-01 20:05:00.021'],列=['日期']
df['date']=pd.to_datetime(df['date'])
df['time']=[df['date']中d的datetime.datetime.time(d)
df[df['time']
您是否在'date'
列中有str
s或其他内容?当我执行以下命令时,它会给我错误..max(df['date'])…keyrerror:'date'@NikitaAgarwal-是,因为date
是索引。因此,使用df.index.max()
获取最大值是否可以作为普通列名使用?@nikitagarwal-这取决于需要什么。显然,df.index
与df['Date']
相同。但是如果需要列Date
则使用df=df。设置索引('Date')。在时间('06:00','20:00')之间。重置索引()
然后获取Date
列非常感谢您的帮助