Reputation:
Need to add new rows to existing data-frame if there is no data in dataframe.In my dataframe,If mcahine on it gives data with time and status(On/off) for every 30 seconds. But machine off,there is no data in dataframe. df:
Time Engine On/Off
2021-03-08 00:00:24+05:30 1
2021-03-08 00:00:54+05:30 1
2021-03-08 00:01:24+05:30 1
2021-03-08 00:01:54+05:30 1
ex: first row 00:00:24 and then after 30 secods,secods data point 00:00:54.
Here i need to append rows if next time point data not available(current state + 30 seconds). With time and Engine On/Off state as 0.
Upvotes: 1
Views: 108
Reputation: 862671
Use Series.reindex
with date_range
generated by minimal and maximal datetimes:
print (df)
Time Engine On/Off
0 2021-03-08 00:00:24+05:30 1
1 2021-03-08 00:01:24+05:30 1
2 2021-03-08 00:01:54+05:30 1
df['Time'] = pd.to_datetime(df['Time'])
r = pd.date_range(df['Time'].min(), df['Time'].max(), freq='30S')
df = df.set_index('Time')['Engine On/Off'].reindex(r, fill_value=0).reset_index()
print (df)
index Engine On/Off
0 2021-03-08 00:00:24+05:30 1
1 2021-03-08 00:00:54+05:30 0
2 2021-03-08 00:01:24+05:30 1
3 2021-03-08 00:01:54+05:30 1
Upvotes: 1