Computer >> Máy Tính >  >> Lập trình >> Python

Python - Thay thế các giá trị âm bằng giá trị dương mới nhất trước đó trong Pandas DataFrame

Chúng tôi muốn thay thế các giá trị âm bằng giá trị dương trước đó mới nhất. Cùng với đó, nếu không có giá trị dương trước thì giá trị sẽ cập nhật thành 0.

Đầu vào

Ví dụ:đầu vào là -

DataFrame:  
One  two
0  -2   -3
1   4   -7
2   6    5
3   0   -9

Đầu ra

Đầu ra phải là -

   One two
0   0   0
1   7   0
2   4   2
3   0   2

Mặt nạ Data Frame được sử dụng để thay thế các giá trị âm. Để điền vào các giá trị còn thiếu, chúng tôi đã sử dụng điền vào phía trước. Đầu tiên, chúng ta hãy tạo khung dữ liệu gấu trúc -

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

Hãy để chúng tôi thực hiện việc đắp mặt nạ -

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

Ví dụ

Sau đây là mã -

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

Đầu ra

Điều này sẽ tạo ra kết quả sau -

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