Mohamed Elnemr نشر 2 سبتمبر 2021 أرسل تقرير نشر 2 سبتمبر 2021 (معدل) لدي بيانات على شكل dataframe كالتالي: itm Date Amount 420 2021-09-30 65211 421 2021-09-09 29424 421 2021-09-16 29877 421 2021-09-23 30990 421 2021-09-30 61303 485 2021-09-09 71781 485 2021-09-16 NaN 485 2021-09-23 11072 485 2021-09-30 113702 489 2021-09-09 64731 489 2021-09-16 NaN أود تحويل قيم NaN الى 0 ، لكن عندما أحاول يظهر لي الخطأ التالي: ValueError: cannot convert float NaN to integer كيف يمكنني حل تلك المشكلة؟ تم التعديل في 2 سبتمبر 2021 بواسطة Mohamed Elnemr 2 اقتباس
0 Ahmed Sharshar نشر 2 سبتمبر 2021 أرسل تقرير نشر 2 سبتمبر 2021 يمكنك ببساطة استخدام الدالة DataFrame.fillna() لاستبدالة قيم ال NaN بأي قيمه تريد،المثال التالي يوضح كيفية استخدامها لاستبدال NaN بالصفر في كل ال dataframe: In [2]: df Out[2]: 0 1 0 NaN NaN 1 -0.494375 0.570994 2 NaN NaN 3 1.876360 -0.229738 4 NaN NaN In [3]: df.fillna(0) Out[3]: 0 1 0 0.000000 0.000000 1 -0.494375 0.570994 2 0.000000 0.000000 3 1.876360 -0.229738 4 0.000000 0.000000 أما اذا أردت تحديد عمود معين لاستبدال القيم فيه فيمكنك عمل التالي: In [5]: df[1].fillna(0, inplace=True) #1 هو رقم العمود المراد استبدال قيمة Out[5]: 0 0.000000 1 0.570994 2 0.000000 3 -0.229738 4 0.000000 In [6]: df Out[6]: 0 1 0 NaN 0.000000 1 -0.494375 0.570994 2 NaN 0.000000 3 1.876360 -0.229738 4 NaN 0.000000 لذا اذا قمنا بتطبيق تلك الطريقة في البيانات الخاصة بك يمكنك عمل التالي: In[7]: df[2].fillna(0, inplace=True) Out[7]: itm Date Amount 420 2021-09-30 65211 421 2021-09-09 29424 421 2021-09-16 29877 421 2021-09-23 30990 421 2021-09-30 61303 485 2021-09-09 71781 485 2021-09-16 0.0000 485 2021-09-23 11072 485 2021-09-30 113702 489 2021-09-09 64731 489 2021-09-16 0.0000 اقتباس
0 Ali Haidar Ahmad نشر 3 سبتمبر 2021 أرسل تقرير نشر 3 سبتمبر 2021 يمكنك استخدام replace: import pandas as pd import numpy as np # للأعمدة df['col'] = df['col'].replace(np.nan, 0) # لكامل الداتافريم df = df.replace(np.nan, 0) # إذا أردت أن يتم التعديل على البيانات الأصلية دون نسخة df.replace(np.nan, 0, inplace=True) أو باستخدام : # قراءة الداتافريم df = pandas.read_csv('somefile.txt') # استبدال القيم المفقودة ب0 df = df.fillna(0) # وبشكل أكثر دقة # يمكنك أن تحدد له عمود محدد df['column_name'].fillna(0) #في حال أردنا التعديل على البيانات الأصلية inplace=True ونضيف 1 اقتباس
السؤال
Mohamed Elnemr
لدي بيانات على شكل dataframe كالتالي:
itm Date Amount 420 2021-09-30 65211 421 2021-09-09 29424 421 2021-09-16 29877 421 2021-09-23 30990 421 2021-09-30 61303 485 2021-09-09 71781 485 2021-09-16 NaN 485 2021-09-23 11072 485 2021-09-30 113702 489 2021-09-09 64731 489 2021-09-16 NaN
أود تحويل قيم NaN الى 0 ، لكن عندما أحاول يظهر لي الخطأ التالي:
كيف يمكنني حل تلك المشكلة؟
تم التعديل في بواسطة Mohamed Elnemr2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.