Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

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

การมาสก์ Data Frame ใช้เพื่อแทนที่ค่าลบ ในการเติมค่าที่ขาดหายไป เราใช้การเติมแบบส่งต่อ ขั้นแรก ให้เราสร้างดาต้าเฟรมของแพนด้า -

# 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