gpt4 book ai didi

python - Pandas 用以前的非零值替换零

转载 作者:IT老高 更新时间:2023-10-28 21:17:49 28 4
gpt4 key购买 nike

我有以下数据框:

index = range(14)
data = [1, 0, 0, 2, 0, 4, 6, 8, 0, 0, 0, 0, 2, 1]
df = pd.DataFrame(data=data, index=index, columns = ['A'])

如何使用 pandas 用以前的非零值填充零?是否有一个不只是“NaN”的fillna?

输出应如下所示:

[1, 1, 1, 2, 2, 4, 6, 8, 8, 8, 8, 8, 2, 1]

(这个问题之前在这里问过 Fill zero values of 1d numpy array with last non-zero values 但他专门要求一个 numpy 解决方案)

最佳答案

您可以将 replacemethod='ffill'

一起使用
In [87]: df['A'].replace(to_replace=0, method='ffill')
Out[87]:
0 1
1 1
2 1
3 2
4 2
5 4
6 6
7 8
8 8
9 8
10 8
11 8
12 2
13 1
Name: A, dtype: int64

要获取 numpy 数组,请处理 values

In [88]: df['A'].replace(to_replace=0, method='ffill').values
Out[88]: array([1, 1, 1, 2, 2, 4, 6, 8, 8, 8, 8, 8, 2, 1], dtype=int64)

关于python - Pandas 用以前的非零值替换零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261359/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com