0
我有包含列Date
& Time
一個數據幀,用含有在格式中的條目的每一行:MM/DD/YYYY HH:MM:SS
切片,其包括時間範圍時間
我想能夠僅基於切片的數據幀日期範圍,例如:5/01/2016 to 5/30/2016
。
任何建議將不勝感激!
我有包含列Date
& Time
一個數據幀,用含有在格式中的條目的每一行:MM/DD/YYYY HH:MM:SS
切片,其包括時間範圍時間
我想能夠僅基於切片的數據幀日期範圍,例如:5/01/2016 to 5/30/2016
。
任何建議將不勝感激!
你可以使用loc
選擇數據框能滿足條件(日期之間間隔)成立的子集:
數據準備
In [13]: from io import StringIO
...: import pandas as pd
...:
In [14]: df = pd.read_csv(StringIO('''
...: Date
...: 5/01/2016 00:00:00
...: 5/02/2016 00:00:00
...: 5/03/2016 00:00:00
...: 5/04/2016 00:00:00
...: 5/05/2016 00:00:00
...: 5/06/2016 00:00:00
...: 5/07/2016 00:00:00
...: 5/08/2016 00:00:00
...: 5/09/2016 00:00:00
...: 5/010/2016 00:00:00
...: '''))
操作
In [15]: df['Date'] = pd.to_datetime(df['Date'])
In [16]: start = "5/02/2016"
...: end = "5/05/2016"
In [17]: mask = (df['Date'] >= pd.to_datetime(start)) & (df['Date'] <= pd.to_datetime(end))
In [18]: df.loc[mask]
Out[18]:
Date
1 2016-05-02
2 2016-05-03
3 2016-05-04
4 2016-05-05
變量SDATE和EDATE
frame = []
record = 0
for date,time in my_list:
if date == sdate or record == 1:
frame.append([date,time])
record = 1
if date == edate:
break;
print (frame)
dataframe where?在一個SQL表?你應該重做你的日期是一個db本地日期/日期時間值,然後你的問題就變成了一個微不足道的'日期'字段'2016-05-01'和'2016-05-30'' –
'如果他們都是'日期時間對象;你可以簡單地減去它們並得到一個'timedelta'對象? – jacob
不幸的是,我無法控制日期/時間格式。它是來自另一個我無法控制的應用程序對CSV文件的輸入,所以我需要能夠根據日期範圍進行報告;時間是無關緊要的。 – CCH