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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
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 Elnemrرابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.