English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

بيانات الفجوات في Pandas

مثال على عمليات البيانات الفارغة الخاصة بـ Pandas

عندما يتم تجاهل أي بيانات لا تتطابق مع القيمة المحددة (NaN / قيم مفقودة، على الرغم من أنه يمكن اختيار أي قيمة) يتم 'كبس' الكائن الفارغ. يتبع SparseIndex الخاص بكائن الفارغ مواقع التوزيع للبيانات. في مثال، سيكون ذلك أكثر وضوحًا. تطبق جميع بنيات البيانات القياسية الخاصة بـ Pandas طريقة to_sparse:

 import pandas as pd
 import numpy as np
 ts = pd.Series(np.random.randn(10))
 ts[2:-2] = np.nan
 sts = ts.to_sparse()
 print sts

النتائج التالية:

 0 -0.810497
 1 -1.419954
 2 NaN
 3 NaN
 4 NaN
 5 NaN
 6 NaN
 7 NaN
 8 0.439240
 9 -1.095910
 dtype: float64
 BlockIndex
 مكامع اللوالب: array([0, 8], dtype=int32)
 أطوال اللوالب: array([2, 2], dtype=int32)

لزيادة كفاءة الذاكرة، هناك كائنات فراغية.
الآن دعنا نفترض أن لديك DataFrame كبير يحتوي على NA ونفذ الت seguinte código-

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(10000, 4))
 df.ix[:9998] = np.nan
 sdf = df.to_sparse()
 print sdf.density

النتائج التالية:

   0.0001

يمكن تحويل أي كائن فجوي إلى شكل كثيف باستخدام to_dense

 import pandas as pd
 import numpy as np
 ts = pd.Series(np.random.randn(10))
 ts[2:-2] = np.nan
 sts = ts.to_sparse()
 print sts.to_dense()

النتائج التالية:

 0 -0.810497
 1 -1.419954
 2 NaN
 3 NaN
 4 NaN
 5 NaN
 6 NaN
 7 NaN
 8 0.439240
 9 -1.095910
 dtype: float64

نوع البيانات الفجوي

يجب أن يكون نوع البيانات لبيانات الفجوات متطابقًا مع تمثيله الكثيف. حاليًا، يدعم float64،int64 و bool types. يعتمد القيمة الافتراضية للfill_value على النوع الأصلي للdtype.

float64 − np.nan

int64 − 0

bool − False

سنقوم تنفيذ الكود التالي لفهمها:

 import pandas as pd
 import numpy as np
 s = pd.Series([1, np.nan, np.nan])
 print s
 s.to_sparse()
 print s

النتائج التالية:

 0 1.0
 1 NaN
 2 NaN
 dtype: float64
 0 1.0
 1 NaN
 2 NaN
 dtype: float64