Python - 在 Pandas DataFrame 中用最新的前一个正值替换负值

我们想用最新的前一个正值替换负值。这样,如果前面没有正值,则该值应更新为 0。

输入

例如,输入是 -

DataFrame:  

One  two

0  -2   -3

1   4   -7

2   6    5

3   0   -9

输出结果

输出应该是 -

   One two

0   0   0

1   7   0

2   4   2

3   0   2

数据框屏蔽用于替换负值。为了填充缺失值,我们使用了正向填充。首先,让我们创建熊猫数据框 -

# 创建熊猫数据框

df = pd.DataFrame({'One': [-3, 7, 4, 0], 'two': [-6, -1, 2, -8]})

让我们进行掩蔽 -

df = df.mask(df.lt(0)).ffill().fillna(0).astype('int32')

示例

以下是代码 -

import pandas as pd

# 创建熊猫数据框

df = pd.DataFrame({'One': [-3, 7, 4, 0],'two': [-6, -1, 2, -8]})

# displaying the DataFrame

print"DataFrame: \n",df

# masking

df = df.mask(df.lt(0)).ffill().fillna(0).astype('int32')

# displaying the updated DataFrame

print"\nUpdated DataFrame: \n",df

输出结果

这将产生以下输出 -

DataFrame:

   One   two

0   -3   -6

1    7   -1

2    4    2

3    0   -8

Updated DataFrame:

   One   two

0    0    0

1    7    0

2    4    2

3    0    2

以上是 Python - 在 Pandas DataFrame 中用最新的前一个正值替换负值 的全部内容, 来源链接: utcz.com/z/353573.html

回到顶部