2013-06-19 2 views
6

मैं टाइम्सरीज़ (उदाहरण के लिए 5-मिनट तापमान अवलोकन) के लिए सप्ताह के बॉक्सप्लॉट्स का एक सेट बनाने की कोशिश कर रहा हूं।पांडस टाइम्सरीज़ से दिन के हफ्ते के बॉक्सप्लॉट्स बनाने का सबसे अच्छा तरीका

मेरे कोड:

# ts is our timeseries 
ts = df.SomeColumn 

dow_map = {} 
days = ['MON','TUE','WED','THU','FRI','SAT','SUN'] 
dow_idx = ts.index.dayofweek 

i = 0 
for d in days: 
    dow_map[d] = ts[dow_idx == i] 
    i = i + 1 

df = pd.DataFrame(dow_map) 
df.boxplot() 

परिणामों में: तो

--------------------------------------------------------------------------- 
Exception         Traceback (most recent call last) 
<ipython-input-898-6070c45e4c4b> in <module>() 
    41  i = i + 1 
    42 
---> 43 df = pd.DataFrame(dow_map) 
    44 df.boxplot() 
... 
Exception: Reindexing only valid with uniquely valued Index objects 

मैं दिन के सप्ताह प्रत्येक के लिए DataFrames बनाकर succcess खोजने के लिए और किया concat-इंग उन्हें एक अंतिम DataFrame में है, लेकिन यह अक्षम लगता है ...

+4

अलावा, आप कभी अपने आप को खोजने अगर मैं + = 1 अजगर में, तो आप शायद यह गलत (इस मामले में उपयोग करते हैं [ 'enumerate'] (http कर रहे हैं: // डॉक्स .python.org/2/लाइब्रेरी/functions.html # enumerate)) –

+0

आप इस डेटाफ्रेम को किस तरह दिखने की उम्मीद करते हैं? ऐसा लगता है कि यह बहुत अस्पष्ट होगा ... –

उत्तर

9

1 डेटा फ्रेम बनाएं और सप्ताह के दिनों के लिए सप्ताहांत विधि का उपयोग करें:

import pandas as pd 
import numpy.random as random 
n=1000 
df = pd.DataFrame(random.randn(n), pd.date_range('2010-01-01', periods=n), columns=["data"]) 
df['Dates'] = df.index 
df['week_days'] =df.index.weekday 
df 

अब उस तालिका को पिवोट करें ताकि सप्ताह_डेज़ कॉलम के रूप में हों (दिन के स्ट्रिंग प्रारूपों के लिए ज़रूरतों को भी बदल सकता है लेकिन यह आपके लिए छोड़ सकता है।

x =df.pivot(index='Dates', columns='week_days', values='data') 
x.boxplot() 

enter image description here

+0

ग्रेट समाधान। Txs! –

1
import locale, calendar 
# for example pl_PL 
locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8') 
x = x.rename_axis(lambda x: calendar.day_abbr[x].capitalize()) 
संबंधित मुद्दे