pandas :创建行以填补数字空白 [英] Pandas: create rows to fill numeric gaps
本文介绍了 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
想法是填充"列from
和to
之间的间隙,以获得:
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屋!
查看全文