pandas 0.23 - Resampler.fillna()

pandas.core.resample.Resampler.fillna




pandas

pandas.core.resample.Resampler.fillna

Resampler.fillna(method, limit=None) [source]

अपसंस्कृति द्वारा पेश किए गए लापता मान भरें।

आंकड़ों में, प्रतिरूपण गुम हुए डेटा को प्रतिस्थापित मानों [R32] से बदलने की प्रक्रिया है। डेटा को फिर से जमा करते समय, लापता मान दिखाई दे सकते हैं (उदाहरण के लिए, जब resampling आवृत्ति मूल आवृत्ति से अधिक है)।

मूल डेटा में मौजूद गुम मानों को संशोधित नहीं किया जाएगा।

पैरामीटर:

विधि : {'पैड', 'बैकफिल', 'फाइफिल', 'बाइफिल', 'निकटतम'}

रीसम्प्लेटेड डेटा में छेद भरने के लिए उपयोग करने की विधि

  • 'पैड' या 'ffill': अंतराल (आगे भरने) को भरने के लिए पिछले वैध अवलोकन का उपयोग करें।
  • 'बैकफिल' या 'bfill': अंतराल को भरने के लिए अगले वैध अवलोकन का उपयोग करें।
  • 'निकटतम': अंतराल को भरने के लिए निकटतम वैध अवलोकन का उपयोग करें।

सीमा : पूर्णांक, वैकल्पिक

कितने लगातार लापता मूल्यों को भरने की सीमा।

यह दिखाता है:

श्रृंखला या डेटाफ़्रेम

गायब मूल्यों के साथ एक अपग्रेडेड सीरीज़ या डेटाफ़्रेम।

यह भी देखें

backfill
रिवाइज्ड डेटा में बैकवर्ड NaN मान भरें।
pad
फ़ॉरवर्ड किए गए डेटा में NaN मान भरें।
nearest
केंद्र से शुरू होने वाले निकटतम पड़ोसी के साथ resampled डेटा में NaN मान भरें।
interpolate
प्रक्षेप का उपयोग करके NaN मान भरें।
pandas.Series.fillna
निर्दिष्ट विधि का उपयोग करते हुए श्रृंखला में NaN मान भरें, जो 'bfill' और 'ffill' हो सकता है।
pandas.DataFrame.fillna
निर्दिष्ट विधि का उपयोग करके DataFrame में NaN मान भरें, जो 'bfill' और 'ffill' हो सकता है।

संदर्भ

[R32] ( 1 , 2 ) https://en.wikipedia.org/wiki/Imputation_(statistics )

उदाहरण

एक श्रृंखला को फिर से खोलना:

>>> s = pd.Series([1, 2, 3],
...               index=pd.date_range('20180101', periods=3, freq='h'))
>>> s
2018-01-01 00:00:00    1
2018-01-01 01:00:00    2
2018-01-01 02:00:00    3
Freq: H, dtype: int64

आपके द्वारा प्राप्त लापता मानों को भरने के बिना:

>>> s.resample("30min").asfreq()
2018-01-01 00:00:00    1.0
2018-01-01 00:30:00    NaN
2018-01-01 01:00:00    2.0
2018-01-01 01:30:00    NaN
2018-01-01 02:00:00    3.0
Freq: 30T, dtype: float64
>>> s.resample('30min').fillna("backfill")
2018-01-01 00:00:00    1
2018-01-01 00:30:00    2
2018-01-01 01:00:00    2
2018-01-01 01:30:00    3
2018-01-01 02:00:00    3
Freq: 30T, dtype: int64
>>> s.resample('15min').fillna("backfill", limit=2)
2018-01-01 00:00:00    1.0
2018-01-01 00:15:00    NaN
2018-01-01 00:30:00    2.0
2018-01-01 00:45:00    2.0
2018-01-01 01:00:00    2.0
2018-01-01 01:15:00    NaN
2018-01-01 01:30:00    3.0
2018-01-01 01:45:00    3.0
2018-01-01 02:00:00    3.0
Freq: 15T, dtype: float64
>>> s.resample('30min').fillna("pad")
2018-01-01 00:00:00    1
2018-01-01 00:30:00    1
2018-01-01 01:00:00    2
2018-01-01 01:30:00    2
2018-01-01 02:00:00    3
Freq: 30T, dtype: int64
>>> s.resample('30min').fillna("nearest")
2018-01-01 00:00:00    1
2018-01-01 00:30:00    2
2018-01-01 01:00:00    2
2018-01-01 01:30:00    3
2018-01-01 02:00:00    3
Freq: 30T, dtype: int64

अपसमय से पहले मौजूद मूल्य प्रभावित नहीं होते हैं।

>>> sm = pd.Series([1, None, 3],
...               index=pd.date_range('20180101', periods=3, freq='h'))
>>> sm
2018-01-01 00:00:00    1.0
2018-01-01 01:00:00    NaN
2018-01-01 02:00:00    3.0
Freq: H, dtype: float64
>>> sm.resample('30min').fillna('backfill')
2018-01-01 00:00:00    1.0
2018-01-01 00:30:00    NaN
2018-01-01 01:00:00    NaN
2018-01-01 01:30:00    3.0
2018-01-01 02:00:00    3.0
Freq: 30T, dtype: float64
>>> sm.resample('30min').fillna('pad')
2018-01-01 00:00:00    1.0
2018-01-01 00:30:00    1.0
2018-01-01 01:00:00    NaN
2018-01-01 01:30:00    NaN
2018-01-01 02:00:00    3.0
Freq: 30T, dtype: float64
>>> sm.resample('30min').fillna('nearest')
2018-01-01 00:00:00    1.0
2018-01-01 00:30:00    NaN
2018-01-01 01:00:00    NaN
2018-01-01 01:30:00    3.0
2018-01-01 02:00:00    3.0
Freq: 30T, dtype: float64

DataFrame resampling स्तंभ-वार की जाती है। सभी एक ही विकल्प उपलब्ध हैं।

>>> df = pd.DataFrame({'a': [2, np.nan, 6], 'b': [1, 3, 5]},
...                   index=pd.date_range('20180101', periods=3,
...                                       freq='h'))
>>> df
                       a  b
2018-01-01 00:00:00  2.0  1
2018-01-01 01:00:00  NaN  3
2018-01-01 02:00:00  6.0  5
>>> df.resample('30min').fillna("bfill")
                       a  b
2018-01-01 00:00:00  2.0  1
2018-01-01 00:30:00  NaN  3
2018-01-01 01:00:00  NaN  3
2018-01-01 01:30:00  6.0  5
2018-01-01 02:00:00  6.0  5