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

我們使用資料幀掩碼來替換負值。為了填充缺失值,我們使用了前向填充。首先,讓我們建立一個 pandas 資料幀 −

# create pandas dataframe
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

# create pandas dataframe
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


更新於: 09-Sep-2021

697 個瀏覽量

開啟你的 職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.