2016-10-15 6 views
16

मैं अपनी विनिमय समय श्रृंखला में एक चलती औसत गणना जोड़ना चाहता हूं।मूविंग औसत- पांडस

Quandl

एक्सचेंज = Quandl.get से मूल डेटा ("Bundesbank/BBEX3_D_SEK_USD_CA_AC_000", authtoken = "xxxxxxx")

Value 
Date    
1989-01-02 6.10500 
1989-01-03 6.07500 
1989-01-04 6.10750 
1989-01-05 6.15250 
1989-01-09 6.25500 
1989-01-10 6.24250 
1989-01-11 6.26250 
1989-01-12 6.23250 
1989-01-13 6.27750 
1989-01-16 6.31250 

स्थानांतरण avarage गिना जा रहा है

MovingAverage = pd.rolling_mean (एक्सचेंज, 5)

   Value 
Date   
1989-01-02  NaN 
1989-01-03  NaN 
1989-01-04  NaN 
1989-01-05  NaN 
1989-01-09 6.13900 
1989-01-10 6.16650 
1989-01-11 6.20400 
1989-01-12 6.22900 
1989-01-13 6.25400 
1989-01-16 6.26550 

मैं जोड़ना चाहता हूं उसी इंडेक्स (दिनांक) का उपयोग करके 'वैल्यू' के बाद दाईं ओर एक नए कॉलम के रूप में गणना मूविंग औसत। अधिमानतः मैं भी 'एमए'

उत्तर

26

की गणना चलती औसत रोलिंग मतलब रिटर्न एक Series आप केवल नीचे अपनी DataFrame (MA) वर्णित के रूप में की एक नया स्तंभ के रूप में यह जोड़ने के लिए नाम बदलने के लिए चाहते हैं।

जानकारी के लिए, rolling_mean फ़ंक्शन को नए संस्करणों में बहिष्कृत कर दिया गया है। मैं अपने उदाहरण में नई विधि का इस्तेमाल किया है, पांडा documentation

चेतावनी संस्करण 0.18.0, pd.rolling_*, pd.expanding_* करने से पहले, और pd.ewm* मॉड्यूल स्तर के कार्यों थे और अब पदावनत कर रहे हैं एक उद्धरण नीचे देखें। इन्हें Rolling, Expanding और EWM. ऑब्जेक्ट्स और संबंधित विधि कॉल का उपयोग करके प्रतिस्थापित किया जाता है।

df['MA'] = df.rolling(window=5).mean() 

print(df) 
#    Value MA 
# Date     
# 1989-01-02 6.11 NaN 
# 1989-01-03 6.08 NaN 
# 1989-01-04 6.11 NaN 
# 1989-01-05 6.15 NaN 
# 1989-01-09 6.25 6.14 
# 1989-01-10 6.24 6.17 
# 1989-01-11 6.26 6.20 
# 1989-01-12 6.23 6.23 
# 1989-01-13 6.28 6.25 
# 1989-01-16 6.31 6.27 
2

मामले में आप गणना कर रहे हैं एक से अधिक का मूविंग औसत:

for i in range(2,10): 
    df['MA{}'.format(i)] = df.rolling(window=i).mean() 

तो फिर तुम सब एमए के एक समग्र औसत कर सकते हैं

df[[f for f in list(df) if "MA" in f]].mean(axis=1)