pandas根据某一列的差值快速均匀插值--interpolate

原理

修改行索引,填充空值,插值

实现

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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值