例如:Python的CSV:搶在時間條件的行的所有值的值與條件CSV數據,我試圖讓
c1,c2,v1,v2,p1,p2,r1,a1,f1,f2,f3,Time_Stamp
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:00
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:01
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:02
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:03
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:04
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:05
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:06
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:07
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:08
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:09
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:10
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:11
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:12
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:13
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:14
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:15
415.7,12.5,30.2,154.6,4675.2,1,-1,5199.4,0,50,0,13/06/2017 16:38:16
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:17
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:18
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:19
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:20
0,2.3,0.6,-0.9,-0.5,1,-1,941.0,0,50,0,13/06/2017 16:38:21
代碼讀取CSV:
import plotly
import plotly.plotly as py
import plotly.graph_objs as go
import plotly.figure_factory as FF
import numpy as np
from datetime import date,time,datetime
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
def readcsv(x): #def function to read csv files based on code below*
Data = pd.read_csv(x, parse_dates=['Time_Stamp'], infer_datetime_format=True)
Data['Date'] = Data.Time_Stamp.dt.date #date column in DataFrame
Data['Time'] = Data.Time_Stamp.dt.time #time column in DataFrame
Data['Time_Stamp'] = pd.to_datetime(Data['Time_Stamp'])
print(Data[1:6])
return Data
Data = readcsv('datafile.csv')#*
def getMask(start,end,Data):
mask = (Data['Time_Stamp'] > start) & (Data['Time_Stamp'] <= end)
return mask;
start = '2017-06-13 16:00:00'
end = '2017-06-13 16:40:00'
timerange = Data.loc[getMask(start, end, Data)] #* <---- using this Dataframe
#timeR.plot(x='Time_Stamp', y='AC_Input_Current', style='-', color='black')
我想要得到的是:
:[用於例如]執行pspike
(代碼如下),我會得到下面的輸出後,
13/06/2017 16:38:00
13/06/2017 16:38:01
13/06/2017 16:38:02
13/06/2017 16:38:03
13/06/2017 16:38:04
13/06/2017 16:38:05
13/06/2017 16:38:06
13/06/2017 16:38:07
13/06/2017 16:38:08
13/06/2017 16:38:09
13/06/2017 16:38:10
13/06/2017 16:38:11
13/06/2017 16:38:12
13/06/2017 16:38:13
13/06/2017 16:38:14
13/06/2017 16:38:15
13/06/2017 16:38:17
13/06/2017 16:38:18
13/06/2017 16:38:19
13/06/2017 16:38:20
13/06/2017 16:38:21
*請注意,我用它具有Time
值每秒從16:00:00
到16:40:00
數據框timerange
,得到pspike
在那裏它行的跳躍,如果c1
值< 5.0
[從輸出print(pspike)
] 條件:如果打印行,其中Time
值爲16:38:15
,並且以下行的Time
值爲16:38:17
(其中,下一行的Time
值跳過1秒)... 打印跳過的行(在這種情況下,它是在Time
值16:38:16
)
pspike = (timerange.loc[timerange['AC_Input_Current'] <= 5.0])
print(pspike)
with open('welding_data_by_selRange.csv','a', newline='') as duraweld:
a = csv.writer(duraweld)
data = [countIC2 ,countIC, Datetime]
a.writerow(data)
是否必須是熊貓解決方案?如果在連續行之間跳過*超過一秒,會怎麼樣? – wwii
如果可能,熊貓,但我不介意看到另一種方法來解決它。至於如果跳過了1秒以上,沒關係,只需跳過1秒即可。 –