背景我有一个由数百万个值组成的大型数据框。它看起来像下面
import pandas as pd
df = pd.DataFrame({'level':[1,1,1,2,3,2,2,1,2,1,2,3,3,4,5,2,3,4,5,1,1],
'type':['','','com','','','','','','','','com','','','','','','','com','','','']})
print(df)
level type
0 1
1 1
2 1 com
3 2
4 3
5 2
6 2
7 1
8 2
9 1
10 2 com
11 3
12 3
13 4
14 5
15 2
16 3
17 4 com
18 5
19 1
20 1
我想把我的画框洗成这样。将type=com后的前一个值填入空白处,直到level等于/小于带有com的起始行的level。有什么想法吗?非常感谢。
level type type_new
0 1
1 1
2 1 com com
3 2 com
4 3 com
5 2 com
6 2 com
7 1
8 2
9 1
10 2 com com
11 3 com
12 3 com
13 4 com
14 5 com
15 2
16 3
17 4 com com
18 5 com
19 1
20 1
3条答案
按热度按时间wn9m85ua1#
一个选择:
另一种方法:
输出量:
iswrvxsc2#
df
v09wglhw3#
用途: