pandas :创建行以填补数字空白 [英] Pandas: create rows to fill numeric gaps

查看:74
本文介绍了 pandas :创建行以填补数字空白的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从这样的DataFrame中获取:

From a DataFrame like this one:

ref             from    to
abcd            1       2
efgh            2       4
ijkl            1       3
mnop            3       4
qrst            4       4
uvwx            4       6

想法是填充"列fromto之间的间隙,以获得:

The idea would be to "fill gaps" between columns from and to so as to obtain:

ref             value
abcd            1
abcd            2
efgh            2
efgh            3
efgh            4
ijkl            1
ijkl            2
ijkl            3
mnop            3
mnop            4
qrst            4
uvwx            4
uvwx            5
uvwx            6

推荐答案

一种numpy方法

r = df['ref'].values
f = df['from'].values
t = df['to'].values
pd.DataFrame(dict(
        ref=r.repeat(t - f + 1),
        value=np.concatenate([np.arange(f, t + 1) for f, t in zip(f, t)])
    ))

     ref  value
0   abcd      1
1   abcd      2
2   efgh      2
3   efgh      3
4   efgh      4
5   ijkl      1
6   ijkl      2
7   ijkl      3
8   mnop      3
9   mnop      4
10  qrst      4
11  uvwx      4
12  uvwx      5
13  uvwx      6


定时

这篇关于 pandas :创建行以填补数字空白的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆