Pandas: วิธีใช้ ffill ตามเงื่อนไข
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อใช้ฟังก์ชัน ffill() ในแพนด้าเพื่อส่งค่าเติมตามเงื่อนไขในคอลัมน์อื่น:
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
ตัวอย่างเฉพาะนี้จะส่งต่อค่าเติมในคอลัมน์ การขาย เฉพาะในกรณีที่ค่าก่อนหน้าในคอลัมน์ ร้านค้า เท่ากับค่าปัจจุบันในคอลัมน์ ร้านค้า
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ใช้ ffill ตามเงื่อนไขใน Pandas
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับยอดขายรวมที่ทำโดยร้านค้าปลีกสองแห่งที่แตกต่างกันในช่วงสี่ไตรมาสธุรกิจ:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'B'], ' quarter ': [1, 2, 1, 3, 2, 4, 3, 4], ' sales ': [12, 22, 30, np.nan, 24, np.nan, np.nan, np.nan]}) #view DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 to 3 NaN 4 B 2 24.0 5 A 4 NaN 6 B 3 NaN 7 B 4 NaN
โปรดทราบว่ามีค่า NaN หลายค่าในคอลัมน์ การขาย
สมมติว่าเราต้องการเติมค่า NaN เหล่านี้โดยใช้ค่าก่อนหน้าในคอลัมน์ Sales แต่ต้องการให้แน่ใจว่าค่านั้นสอดคล้องกับร้านค้าที่ถูกต้อง
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:
#group by store and forward fill values in sales column df[' sales '] = df. groupby (' store ')[' sales ']. ffill () #view updated DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 A 3 22.0 4 B 2 24.0 5 A 4 22.0 6 B 3 24.0 7 B 4 24.0
โปรดทราบว่าค่า NaN ในคอลัมน์ Sales ถูกแทนที่ด้วยมูลค่า Sales ก่อนหน้า และค่าจะสอดคล้องกับร้านค้าที่ถูกต้อง
ตัวอย่างเช่น:
- ค่า NaN ในตำแหน่งที่ 3 ของดัชนีแถวถูกแทนที่ด้วยค่า 22 ซึ่งเป็นค่าล่าสุดในคอลัมน์ยอดขายที่สอดคล้องกับร้านค้า A
- ค่า NaN ในตำแหน่ง 6 ของดัชนีแถวถูกแทนที่ด้วยค่า 24 ซึ่งเป็นค่าล่าสุดในคอลัมน์ยอดขายที่สอดคล้องกับร้านค้า B
และอื่นๆ
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน pandas ffill() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีนับค่าที่หายไปในแพนด้า
วิธีลบแถวที่มีค่า NaN ใน Pandas
วิธีลบแถวที่มีค่าเฉพาะใน Pandas