首页 > 解决方案 > 如果数据框python pandas中没有数据,如何向现有数据框添加新行

问题描述

如果数据框中没有数据,则需要向现有数据框添加新行。在我的数据框中,如果 mcahine 上的数据每 30 秒提供时间和状态(开/关)的数据。但是机器关闭,数据框中没有数据。东风:

 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

例如:第一行 00:00:24,然后在 30 秒后,秒数据点 00:00:54。

如果下一个时间点数据不可用(当前状态 + 30 秒),我需要在此处附加行。时间和发动机开/关状态为 0。

标签: pythonpandasdataframeappend

解决方案


使用Series.reindexdate_range最小和最大日期时间生成的:

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

推荐阅读