اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

انا هنا عاوز اشوف عديد القيمه المفقود ل كل عمود ولكن في البيانات دي فيه 341 عمود ف pandas مش بيعرضهم كلهم بس انا عاوز اعرضهم كلهم ازي ؟

ده الكود 

data_train.isna().sum()

ودي النتجيه

row_id                  0
sequence_type           0
sequence_id             0
sequence_counter        0
subject                 0
                    ...  
tof_5_v59           30142
tof_5_v60           30142
tof_5_v61           30142
tof_5_v62           30142
tof_5_v63           30142
Length: 341, dtype: int64

 

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

أعتقد أن تريد إظهار جميع الأعمدة وليس 5 فقط .

حيث يشكل افتراضي pandas تقوم بتلخيص العرض ولا تقوم بعرض كل الأعمدة إذا كان عددها كبيرا كما لديك هنا .

وتوجد العديد من الحلول يمكنك حاليا إستخدام هذا الحل :

import pandas as pd

# لعرض جميع الأعمدة بدون تقييد
pd.set_option('display.max_columns', None)

data_train.isna().sum()

هنا قمنا بتغير إعدادات pandas لتعرض جميع الأعمدة.

  • 0
نشر

ايوه بس هي الطريقعه دي بشتعل معه head() فقط

بتاريخ 12 دقائق مضت قال محمد_عاطف:

وعليكم السلام ورحمة الله وبركاته.

أعتقد أن تريد إظهار جميع الأعمدة وليس 5 فقط .

حيث يشكل افتراضي pandas تقوم بتلخيص العرض ولا تقوم بعرض كل الأعمدة إذا كان عددها كبيرا كما لديك هنا .

وتوجد العديد من الحلول يمكنك حاليا إستخدام هذا الحل :

import pandas as pd

# لعرض جميع الأعمدة بدون تقييد
pd.set_option('display.max_columns', None)

data_train.isna().sum()

هنا قمنا بتغير إعدادات pandas لتعرض جميع الأعمدة.

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Ali Ahmed55:

ايوه بس هي الطريقعه دي بشتعل معه head() فقط

لا هذه الطريقة لا  تقتصر على head() فقط بل تعمل مع كل عمليات العرض في pandas حيث فكرة هذ السطر "أنك تخبر pandas أن تعرض كل الأعمدة لك مهما كان عددهم.

هل يمكنك توضيح ما الذي ظهر لك عند إستخدام هذا الكود ؟

  • 0
نشر
بتاريخ الآن قال محمد_عاطف:

لا هذه الطريقة لا  تقتصر على head() فقط بل تعمل مع كل عمليات العرض في pandas حيث فكرة هذ السطر "أنك تخبر pandas أن تعرض كل الأعمدة لك مهما كان عددهم.

هل يمكنك توضيح ما الذي ظهر لك عند إستخدام هذا الكود ؟

انا استخدومت الكود ده في خانه لوجدها في Kaggle Notebook وعملت Run و بعد كده بشوف لقيتي بس الhead() هو العرض الاعمده كله بس الكود ده الا 

data_train.isna().sum() 

والا حتي ده

data_train.info()

  • 0
نشر
بتاريخ 2 دقائق مضت قال Ali Ahmed55:

انا استخدومت الكود ده في خانه لوجدها في Kaggle Notebook وعملت Run و بعد كده بشوف لقيتي بس الhead() هو العرض الاعمده كله بس الكود ده الا 

data_train.isna().sum() 

والا حتي ده

data_train.info()

بما أنك وضحت أنك تعمل على Kaggle Notebook ودعني أوضح لك لما يعمل على Kaggle .

إن head() تقوم بإعادة DataFrame، وبالتالي pandas تقوم بطباعة جدول كامل وفعلا إعداد display.max_columns = None يعمل هنا ويجعله يعرض كل الأعمدة مهما كان عددهم.

أما في data_train.isna().sum() فالنتيجة هنا عبارة عن Series طويلة وليس DataFrame فحتى لو إستخدمت pd.set_option('display.max_columns', None) فهذا لن يؤثر على عدد الصفوف أو القيم في Series بل بيأثر على الأعمدة فقط.

يمكنك تجربة الكود التالي ويجب أن يعمل معك إن شاء الله :

import pandas as pd

# عرض كل الأعمدة والصفوف
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

#هنا لو أردت منع إختصار النصوص
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', None)

print(data_train.isna().sum())

 

  • 0
نشر

هو تمام جدا جدا بس الكود ده 

pd.set_option('display.max_rows', None) اشتغل معه ده 

print(data_train.isna().sum()) ولكن ماشتغلش معه ده data_train.ifno() لسه النتجيه دي كده

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 107 entries, 0 to 106
Columns: 336 entries, row_id to tof_5_v63
dtypes: float64(332), int64(1), object(3)
memory usage: 281.0+ KB

 

  • 0
نشر
بتاريخ 5 دقائق مضت قال Ali Ahmed55:

هو تمام جدا جدا بس الكود ده 

pd.set_option('display.max_rows', None) اشتغل معه ده 

print(data_train.isna().sum()) ولكن ماشتغلش معه ده data_train.ifno() لسه النتجيه دي كده

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 107 entries, 0 to 106
Columns: 336 entries, row_id to tof_5_v63
dtypes: float64(332), int64(1), object(3)
memory usage: 281.0+ KB
 

 

يمكنك تجربة الكود التالي بدلا من info :

col_info = pd.DataFrame({
    'dtype': data_train.dtypes,
    'missing': data_train.isna().sum()
})

print(col_info)

 

  • 0
نشر

عشان تعرض كل الأعمدة الـ 341 في إخراج

data_train.isna().sum()

باستخدام Pandas، لأن Pandas بيختصر الإخراج افتراضيًا لما يكون فيه عدد كبير من الأعمدة، تقدر تغيّر إعدادات العرض باستخدام

pd.set_option

هذا هيخلي Pandas يعرض كل الأعمدة من غير اختزال.

import pandas as pd

# إعداد Pandas لعرض كل الأعمدة
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)  # لو عايز تعرض كل الصفوف كمان

# عرض عدد القيم المفقودة لكل عمود
print(data_train.isna().sum())
pd.set_option('display.max_columns', None)

بيخلي Pandas يعرض كل الأعمدة بغض النظر عن عددها.

pd.set_option('display.max_rows', None)

اختياري، لو عايز تعرض كل الصفوف من غير اختزال.

لما تشغل

data_train.isna().sum()

هتشوف عدد القيم المفقودة لكل عمود من الـ 341 عمود.

لو عايز تعيد الإعدادات للوضع الافتراضي بعدين، استخدم:

pd.reset_option('display.max_columns')
pd.reset_option('display.max_rows')

 

  • 0
نشر

الأفضل إنشاء دالة شاملة لتحليل القيم المفقودة:

def analyze_missing_values(df):
    missing_df = pd.DataFrame({
        'Column': df.columns,
        'Missing_Count': df.isna().sum().values,
        'Missing_Percentage': (df.isna().sum().values / len(df) * 100).round(2),
        'Data_Type': df.dtypes.values
    })

ثم الترتيب حسب عدد القيم المفقودة:

    missing_df = missing_df.sort_values('Missing_Count', ascending=False)

ثم عرض الملخص:

print(f"Total columns: {len(df.columns)}")
print(f"Columns with no missing values: {len(missing_df[missing_df['Missing_Count'] == 0])}")
print(f"Columns with missing values: {len(missing_df[missing_df['Missing_Count'] > 0])}")
print("\n" + "="*60)

 

ثم عرض جميع النتائج:

    with pd.option_context('display.max_rows', None, 'display.max_columns', None):
        print(missing_df.to_string(index=False))
    
    return missing_df

ولا تنسى استدعاء الدالة:

missing_analysis = analyze_missing_values(data_train)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...