本文介绍了重复B列中的值,直到python中的A列中发生更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是python的新手,有一个查询.我需要在B列中重复该值,直到A列中发生更改.
I'm new to python and have a query. I need the value repeated in column B until a change occur in column A.
以下是示例数据:
A B
18 1
18 0
18 0
24 2
24 0
24 0
24 0
10 3
10 0
10 0
我想要我的输出
Column A Column B
18 1
18 1
18 1
18 1
24 2
24 2
10 3
10 3
10 3
10 3
请帮助我.谢谢
推荐答案
您可以使用 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
另一种不依赖于Column A
的解决方案- replace
0
值,并按 ffill
并最后转换为int
:
Another solution which dont depends of Column A
- replace
0
values by NaN
, use forward filling by ffill
and last cast to int
:
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
这篇关于重复B列中的值,直到python中的A列中发生更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!