使用Excel或Python在重复序列中基于缺失数字插入行

时间:2016-06-12 22:11:30

标签: python excel vba csv pandas

我有一个csv文件,格式如下(实际上,重复次数大于4):

Number, Time, Speed
1, 12, 5.8
2, 11, 6.2
3, 9, 7.0
4, 3, 11.9
1, 6, 9.5
3, 7.5, 8.2
4, 4.2, 8.2
2, 2.3, 8.1
4, 4.6, 9.2

我希望输出看起来像这样:

Number, Time, Speed
1, 12, 5.8
2, 11, 6.2
3, 9, 7.0
4, 3, 11.9
1, 6, 9.5
2, 0, 0
3, 7.5, 8.2
4, 4.2, 8.2
1, 0, 0
2, 2.3, 8.1
3, 0, 0
4, 4.6, 9.2

插入缺少的行。

我知道如果不重复这个数字,下面的vba代码可能会起作用。但我的数据是重复的系列。有人可以帮忙吗?

Sub InsertRows()
Dim x As Long, y As Long
For x = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
    y = Range("A" & x) - Range("A" & x - 1)
    If y > 1 Then Range("A" & x).Resize(y - 1).EntireRow.Insert xlShiftDown
Next
End Sub

1 个答案:

答案 0 :(得分:3)

这会创建一个名为data2的新数据框,并插入行。样本中的第四行有一个额外的变量,所以我还添加了一个额外的列。

var i = 2;

  jsMaps.api.attach_event(markers[i],'mouseover',function() {
      infowindows[i].open(map,markers[i]);
    });

  jsMaps.api.attach_event(markers[i],'mouseout',function() {
      infowindows[i].close();
    });

  var j = 3;

  jsMaps.api.attach_event(markers[j],'mouseover',function() {
      infowindows[j].open(map,markers[j]);
    });

  jsMaps.api.attach_event(markers[j],'mouseout',function() {
      infowindows[j].close();
    });

Original

enter image description here

New

enter image description here