Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- d = """09:56:07:457 -> 7d
- 09:56:07:841 -> 91
- 09:56:09:008 -> 02
- 09:56:09:233 -> 80
- 09:56:09:345 -> 01
- 09:56:10:097 -> 80
- 09:56:10:448 -> 91
- 09:56:11:424 -> 01
- 09:56:11:552 -> 01
- 09:56:12:351 -> 01
- 09:56:12:607 -> 01
- 09:56:12:719 -> 01
- 09:56:13:711 -> 91
- 09:56:14:574 -> a3"""
- import time
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- data = [i.split('->')[0].strip() for i in d.split("n")]
- #replace : with .
- data = [i[:8]+"."+i[9:] for i in data]
- #add date to beginning
- data = ["2001-01-01 " + i for i in data]
- #make new dataframe and convert strings to datetime index
- df = pd.DataFrame({"ms":data})
- #get milliseconds
- df["ms"] = pd.to_datetime(df.ms)
- #get whole seconds
- df["seconds"] = [str(i)[0:19] for i in df["ms"]]
- df["seconds"] = pd.to_datetime(df.seconds)
- df.index = df.ms
- df["bytes"] = [1 for _ in df.seconds]
- print(df.head())
- ms seconds bytes
- ms
- 2001-01-01 09:56:07.457 2001-01-01 09:56:07.457 2001-01-01 09:56:07 1
- 2001-01-01 09:56:07.841 2001-01-01 09:56:07.841 2001-01-01 09:56:07 1
- 2001-01-01 09:56:09.008 2001-01-01 09:56:09.008 2001-01-01 09:56:09 1
- 2001-01-01 09:56:09.233 2001-01-01 09:56:09.233 2001-01-01 09:56:09 1
- 2001-01-01 09:56:09.345 2001-01-01 09:56:09.345 2001-01-01 09:56:09 1
- df['string_seconds'] = [str(i) for i in df.seconds]
- df = pd.DataFrame(df.string_seconds.value_counts())
- df["seconds"] = pd.to_datetime(df.index)
- df1 = df.sort_values('seconds')
- df1.index = pd.DatetimeIndex(df1.index)
- df1 = df1.iloc[1:]
- df1.resample('1S')
- df1.plot(x='seconds', y='string_seconds', figsize=(12,3))
Add Comment
Please, Sign In to add comment