الباندا: كيفية ملء قيم nan باستخدام القاموس


يمكنك استخدام الدالة fillna () مع القاموس لاستبدال قيم NaN في عمود واحد من pandas DataFrame بناءً على القيم الموجودة في عمود آخر.

للقيام بذلك، يمكنك استخدام بناء الجملة الأساسي التالي:

 #define dictionary
dict = {' A ': 5 , ' B ': 10 , ' C ': 15 , ' D ': 20 }

#replace values in col2 based on dictionary values in col1
df[' col2 '] = df[' col2 ']. fillna (df[' col1 ']. map (dict))

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: املأ قيم NaN في Pandas باستخدام القاموس

لنفترض أن لدينا DataFrame الباندا التالي الذي يحتوي على معلومات حول المبيعات التي تتم في متاجر البيع بالتجزئة المختلفة:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'C', 'D', 'C', 'B', 'D'],
                   ' sales ': [12, np.nan, 30, np.nan, 24, np.nan, np.nan, 13]})

#view DataFrame
print (df)

  blind sales
0 to 12.0
1 A NaN
2 B 30.0
3 C NaN
4 D 24.0
5CNaN
6BNaN
7 D 13.0

لاحظ أن هناك قيم NaN متعددة في عمود المبيعات .

لنفترض أننا نريد ملء NaNs هذه في عمود المبيعات باستخدام قيم تتوافق مع قيم محددة في عمود المتجر .

يمكننا استخدام بناء الجملة التالي للقيام بذلك:

 #define dictionary
dict = {' A ': 5 , ' B ': 10 , ' C ': 15 , ' D ': 20 }

#replace values in sales column based on dictionary values in store column
df[' sales '] = df[' sales ']. fillna (df[' store ']. map (dict))

#view updated DataFrame
print (df)

  blind sales
0 to 12.0
1 A 5.0
2 B 30.0
3C 15.0
4 D 24.0
5C 15.0
6 B 10.0
7 D 13.0

استخدمنا قاموسًا لإجراء البدائل التالية في عمود المبيعات:

  • إذا كان المتجر A ، فاستبدل NaN في المبيعات بالقيمة 5 .
  • إذا كان المتجر B ، فاستبدل NaN في المبيعات بالقيمة 10 .
  • إذا كان المتجر C ، فاستبدل NaN في المبيعات بالقيمة 15 .
  • إذا كان المتجر D ، فاستبدل NaN في المبيعات بالقيمة 20 .

يمكنك العثور على الوثائق الكاملة عبر الإنترنت لوظيفة fillna() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

كيفية حساب القيم المفقودة في الباندا
كيفية حذف الصفوف ذات قيم NaN في Pandas
كيفية حذف الصفوف التي تحتوي على قيمة محددة في Pandas

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *