原理
修改行索引,填充空值,插值
实现
1、原始数据
data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
df = pd.DataFrame(data, columns=['one', 'two', 'threed', 'four'])
print(df)
初始df
one two threed four
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
2、初始化一些变量
# 新建一个列表,长度为df的行长,用于改变df的行索引
index_list = [i for i in range(0, len(df))]
# 计数总和,用于累计每一行之间的差值,然后给列表的每个元素加上
count = 1
# 遍历的前一个one列的值,初始为one第一个
pre = df.iloc[0]['one']
# 用于访问列表的变量
i = 0
3、修改行索引列表
for row in df.itertuples():
now = getattr(row, "one") # 获取当前one列的值
diff = now - pre # 当前行和前一行的差值
pre = now # 将当前行的值赋给pre下一次使用
count = int(count + diff - 1) # 累计diff的差值,因为1-5之间差值为4,但是只需要插入3个数,所以-1