python pandas:填充一列直到出现不同的值?

发布于 2025-01-22 00:04:19 字数 185 浏览 0 评论 0原文

我正在使用熊猫和numpy库从事一个算法交易项目,并想达到以下结果:

当前输出:

1
0
0
2
0
2
0
0
4
0
0
0
5

所需的输出:

1
1
1
2
2
2
2
2
4
4
4
4
5

我该如何处理?

I am working on an algo trading project using the pandas and numpy libraries and would like to achieve the following result:

Current output:

1
0
0
2
0
2
0
0
4
0
0
0
5

desired output:

1
1
1
2
2
2
2
2
4
4
4
4
5

How do I go about this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤云独去闲 2025-01-29 00:04:19

0 na 然后向前填充:

df['col1'] = df['col1'].replace(0, pd.NA).ffill()
print(df)

# Output
    col1
0      1
1      1
2      1
3      2
4      2
5      2
6      2
7      2
8      4
9      4
10     4
11     4
12     5

Replace 0 by NA then fill forward:

df['col1'] = df['col1'].replace(0, pd.NA).ffill()
print(df)

# Output
    col1
0      1
1      1
2      1
3      2
4      2
5      2
6      2
7      2
8      4
9      4
10     4
11     4
12     5
要走就滚别墨迹 2025-01-29 00:04:19

您可以尝试方法 ” noreferrer“> pandas.dataframe.replace

df['col'] = df['col'].replace(to_replace=0, method='ffill')
print(df)

    col
0     1
1     1
2     1
3     2
4     2
5     2
6     2
7     2
8     4
9     4
10    4
11    4
12    5

You can try the method argument of pandas.DataFrame.replace

df['col'] = df['col'].replace(to_replace=0, method='ffill')
print(df)

    col
0     1
1     1
2     1
3     2
4     2
5     2
6     2
7     2
8     4
9     4
10    4
11    4
12    5
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文