我是python的新手并且有一个查询.我需要在B列中重复的值,直到A列发生变化.
这是示例数据:
A B
18 1
18 0
18 0
24 2
24 0
24 0
24 0
10 3
10 0
10 0
Run Code Online (Sandbox Code Playgroud)
我多么想要我的输出
Column A Column B
18 1
18 1
18 1
18 1
24 2
24 2
10 3
10 3
10 3
10 3
Run Code Online (Sandbox Code Playgroud)
请通过这个帮助我.谢谢
您可以使用transform通过first如果需要重复每个组的第一个值:
df['Column B'] = df.groupby('Column A')['Column B'].transform('first')
print (df)
Column A Column B
0 18 1
1 18 1
2 18 1
3 18 1
4 24 2
5 24 2
6 10 3
7 10 3
8 10 3
9 10 3
Run Code Online (Sandbox Code Playgroud)
另一个不依赖的解决方案Column A- 值,使用前向填充和最后一次转换为:replace 0NaNffillint
df['Column B'] = df['Column B'].replace(0,np.nan).ffill().astype(int)
print (df)
Column A Column B
0 18 1
1 18 1
2 18 1
3 18 1
4 24 2
5 24 2
6 10 3
7 10 3
8 10 3
9 10 3
Run Code Online (Sandbox Code Playgroud)