本文介绍了重复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列中发生更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 10:57