這一段時間用python做資料統計,資料都存放在txt檔案中
這裡我的資料長這樣,總共24列
17592719043682383
0898
46010700
0034361
2017-05
-1901:
09:122017-05
-1901:
05:1913
1110466d3f609cb938dd153738103b0303 3
110.3645
20.0353
110.3665
20.0059
2017
0519
17592719302995383
0898
46010600
0035756
2017-05
-1902:
08:132017-05
-1902:
04:3817
1064469d36591de2366d4124291d411f02 3
110.3337
20.0652
110.3361
20.0364
2017
0519
17592719330238383
0898
46010800
0032828
2017-05
-1902:
35:162017-05
-1902:
33:079
76446a134591de8e2385848fd215f3602 3
110.3401
20.0081
110.3333
20.0222
2017
0519
17592720943629383
0898
46010500
0034854
2017-05
-1907:
49:192017-05
-1907:
47:2114
1164469c31591e3288b6b1ab452d31a102 3
110.2842
20.0071
110.3002
19.9818
2017
0519
17592721794216383
0898
46010800
0034478
2017-05
-1908:
13:322017-05
-1908:
10:5812
1210618ef5591e380f00007dbe49a914e0 3
110.3265
20.0297
110.3157
20.058
2017
0519
這裡我需要篩選2023年5月19日1點到3點之間的資料,主要用到第13列時間資料:
我想要提取2017-05-19 01:00:00到2017-05-19 03:00:00之間的資料,在網上找了好多**,都不是我想要的,最後通過不斷的修改,寫出了自己想要的**,話不多說,直接上原始碼:
import datetime
import pandas as pd
# 首先定義自己資料所在的路徑以及處理完資料後的輸出路徑
data_path =
'd:\\7.txt'
output_path1 =
'd:\\10月17日'
if __name__ ==
'__main__'
: # pandas讀取txt資料,這裡我的原來的資料是沒有表頭的,所以header為none,low_memory通俗理解就是只需要程式猜測你的資料格式一次,下面的資料都按照第一次猜測的來(我理解大概就是這個意思,嘿嘿嘿)
msg = pd.
read_table
(data_path,low_memory=false,header=none)
# 將資料的列重新命名,我的資料共有24列
msg.columns =
['1'
,'2'
,'3'
,'4'
,'5'
,'6'
,'7'
,'8'
,'9'
,'10'
,'11'
,'12'
,'13'
,'14'
,'15'
,'16'
,'17'
,'18'
,'19'
,'20'
,'21'
,'22'
,'23'
,'24'
]print
('---------索引分界線-----------'
)# 我將要處理的資料作為索引,這裡要處理的時間資料在第13列,將第三列設定為標準時間格式
msg[
'13'
]= pd.
to_datetime
(msg[
'13'])
msg = msg.
set_index
('13'
) # print
(msg)
# print
("開始寫入-----------"
)# 設定為乙個開始的時間日期,從5.19日零點開始
begin =datetime.
datetime
(2017,5
,19,0
,0,0
) # 結束時間為5.20零點(我是想將每個資料檔案中對應日期的每乙個小時的資料都提取出來)
end =begin + datetime.
timedelta
(hours=24)
# out = msg[
(msg[
'index'
]>= begin)
&(msg[
'index'
]<= end)
]# 迴圈的時候每次增加乙個小時
delta = datetime.
timedelta
(hours=1)
# 開始迴圈啦(覺得迴圈真是個好東西,我之前一條一條輸出的,被白眼嘲笑)
while begin < end:
a = begin
a = a.
strftime
("%y-%m-%d %h:%m:%s"
)print
("開始寫入"
+a) begin = begin + delta
begin1 = begin.
strftime
("%y-%m-%d %h:%m:%s"
)# 敲黑板,重點!!! 這裡將每一小時間隔的資料提取出來,a/begin1都必須是字串型別的,所以上邊要用strftime轉一下,最後儲存
msg[a:begin1]
.to_csv
(output_path1+
"\\"
+(begin1.
replace
(':',''
))+".txt"
,encoding=
'utf-8-sig'
,sep=
'\t'
,index=true,header=none)
這個程式能直接跑的喔 只要把你對應的資料改好就行。
要修改對應的地方:輸入輸出路徑,列索引,對應的時間
獲取時間段資料
create or replace function getdateduan vchussj varchar2,aflag varchar2 return integer as vdate date p nl str varchar2 20 p nl s number p nl y number p...
sql 查詢時間段資料
幾個小時內的資料 date sub now interval 5 hour 今天select from 表名 where to days 時間欄位名 to days now 昨天select from 表名 where to days now to days 時間欄位名 1 7天select fro...
mysql查詢特定時間段內的資料
建表語句 set foreign key checks 0 table structure for t user drop table if exists t user create table t user userid bigint 20 not null,fullname varchar 64...