Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

GEP475GROUPINEEDANAP

Views: 1462
Kernel: Python 3 (Anaconda)
Bottom plot shows CO2_ppm per min ( with accurate time difference )
Next Steps:
  • Converting CO2 per min into Infiltration Rate

  • Think of ways to narrow this down. (of course negative slopes), could do by day of week, time span, or values. (probably all three)

import pandas as pd import numpy as np
df = pd.read_csv('InfiltrationCleanedData.csv', parse_dates = True)
# df.dtypes
df.head(1)
Unnamed: 0 CO2 Time
0 1 718.0 2016-02-19 13:27:00
df.drop(df.columns[0], axis = 1, inplace = True)
# df.head()
df.dtypes
CO2 float64 Time object dtype: object
df['Time'] = pd.to_datetime(df.Time)
df.dtypes
CO2 float64 Time datetime64[ns] dtype: object
df['Time2'] = df.Time.shift(-1)
df.head(3)
CO2 Time Time2
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00
df['TimeDelta'] = df.Time2 - df.Time df.head(3)
CO2 Time Time2 TimeDelta
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 00:04:00
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 00:05:00
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 00:05:00
df.dtypes
CO2 float64 Time datetime64[ns] Time2 datetime64[ns] TimeDelta timedelta64[ns] dtype: object
df['TimeDelta'] = df.TimeDelta / np.timedelta64(1, 'm')
df.dtypes
CO2 float64 Time datetime64[ns] Time2 datetime64[ns] TimeDelta float64 dtype: object
df.head()
CO2 Time Time2 TimeDelta
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 5.0
3 328.0 2016-02-19 13:41:00 2016-02-19 13:46:00 5.0
4 307.0 2016-02-19 13:46:00 2016-02-19 13:51:00 5.0
df['CO2_2'] = df.CO2.shift(-1)
df.head()
CO2 Time Time2 TimeDelta CO2_2
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0 337.0
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0 332.0
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 5.0 328.0
3 328.0 2016-02-19 13:41:00 2016-02-19 13:46:00 5.0 307.0
4 307.0 2016-02-19 13:46:00 2016-02-19 13:51:00 5.0 296.0
df['CO2_diff'] = df.CO2_2 - df.CO2
#df.head()
df['CO2_per_min'] = df.CO2_diff / df.TimeDelta
df.head(3)
CO2 Time Time2 TimeDelta CO2_2 CO2_diff CO2_per_min
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0 337.0 -381.0 -95.25
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0 332.0 -5.0 -1.00
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 5.0 328.0 -4.0 -0.80
df.CO2_per_min.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f59a863a780>
Image in a Jupyter notebook
df.CO2_per_min.describe()
count 1.009840e+05 mean NaN std NaN min -inf 25% -1.200000e+00 50% 0.000000e+00 75% 1.000000e+00 max inf Name: CO2_per_min, dtype: float64
# no problems here # df.TimeDelta.describe()
# Task: FIX THIS df.CO2_diff.describe()
count 100984.000000 mean -0.002357 std 14.886084 min -722.000000 25% -6.000000 50% 0.000000 75% 5.000000 max 439.000000 Name: CO2_diff, dtype: float64
df.to_csv('Deltas_rough.csv')