user15136075
user15136075

Reputation:

How to add new rows to existing data-frame if there is no data in dataframe python pandas

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

Answers (1)

jezrael
jezrael

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

Related Questions