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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *