【发布时间】:2019-11-18 01:23:58
【问题描述】:
我有下表:
+-------------------------------------------------------+
| CarID CarNumber GPS DateTime Speed |
+-------------------------------------------------------+
| WFV303 303 104:58 04.02.2019 10:10:51 21 |
| WFV303 303 104:58 04.02.2019 10:10:54 23 |
| WFV303 303 104:58 04.02.2019 10:10:59 23 |
| WFV303 303 104:58 04.02.2019 10:11:01 24 |
| FBV404 404 105:59 04.02.2019 12:10:20 19 |
| FBV404 404 105:59 04.02.2019 12:10:25 19 |
+-------------------------------------------------------+
如果 CarNumber 中的 i+1 不等于 i,我想插入零值的行,所以我看起来像这样:
+-------------------------------------------------------+
| CarID CarNumber GPS DateTime Speed |
+-------------------------------------------------------+
| WFV303 303 104:58 04.02.2019 10:10:51 21 |
| WFV303 303 104:58 04.02.2019 10:10:54 23 |
| WFV303 303 104:58 04.02.2019 10:10:59 23 |
| WFV303 303 104:58 04.02.2019 10:11:01 24 |
| 0 0 0 0 0 |
| FBV404 404 105:59 04.02.2019 12:10:20 19 |
| FBV404 404 105:59 04.02.2019 12:10:25 19 |
+-------------------------------------------------------+
我尝试了以下方法:
for i in range(len(df['CarNumber'])):
if df['CarNumber'].iloc[i]!=df['CarNumber'].iloc[i+1]:
zero_row = pd.DataFrame({"CarNumber":0,"DateTime": 0}, index=[i+0.5])
df = df.append(zero_row, ignore_index=False)
df = df.sort_index().reset_index(drop=True)
我没有收到任何错误,但它需要很长时间才能处理并且永远不会完成(我的 csv 文件约为 50 mb)。
我该怎么办?有没有更有效的方法?
谢谢!
【问题讨论】: