-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdata.py
47 lines (37 loc) · 1.46 KB
/
data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import pandas as pd
import os
readingInterval = 2000 # each data point is a 2s recording
def parseFile(filename):
if filename.endswith(".csv"):
filename = filename[:-4]
if not os.path.exists(f"./{filename}"):
os.mkdir(f"./{filename}")
data = pd.read_csv(f"./{filename}.csv")
data = data.apply(pd.to_numeric, errors='coerce')
data["time"] = data["time"].astype("int64")
firstTime = data["time"].values[0]
data["timeOffset"] = data["time"] - firstTime
dataPoints = []
n = 0
while True:
dataPoint = data[n*readingInterval <= data["timeOffset"]]
dataPoint = dataPoint[dataPoint["timeOffset"] < (n+1)*readingInterval]
if len(dataPoint.index) <= 0: # stop when there are no more lines
break
firstTimeDataPoint = dataPoint["time"].values[0]
dataPoint["timeOffset"] = dataPoint["time"] - firstTimeDataPoint
del dataPoint["time"]
dataPoints.append(dataPoint)
n += 1
del dataPoints[-1]
for num, dataPoint in enumerate(dataPoints):
dataPoint.to_csv(f"./{filename}/{filename.split('/')[-1]}-Parsed{num}.csv", index=False)
if __name__ == "__main__":
mode = input("file or folder? ")
if mode == "file":
parseFile(input("Filename/path: "))
elif mode == "folder":
dirname = input("Folder name/path: ")
for filename in os.listdir(dirname):
fn = os.path.join(dirname, filename)
parseFile(fn)