Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的过滤日期格式_Python_Python 3.x_Pandas_Pandas Groupby - Fatal编程技术网

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
列非常感谢您的帮助