2017-06-04 17 views
6

मैं एक dataframe इस तरह दिखता है के रूप में प्रयोग regplot:Seaborn datetime64 एक्स अक्ष

date   score 
2017-06-04 90 
2017-06-03 80 
2017-06-02 70 

जब मैं इस की कोशिश की:

sns.regplot(x=date, y=score, data=df) 

मैं एक त्रुटि मिली:

TypeError: reduction operation 'mean' not allowed for this dtype 

स्कोर कॉलम के लिए दिनांक datetime64[ns], और int64 है।

मैं date कॉलम को कैसे गुप्त कर सकता हूं ताकि regplot काम करेगा?

+0

स्वीकार्य उत्तर भी वोट करने के लिए स्वतंत्र महसूस करें! – piRSquared

उत्तर

4

Seaborn regplot में datetimes का समर्थन नहीं करता, लेकिन यहाँ एक बदसूरत हैक है:

df = df.sort_values('date') 
df['date_f'] = pd.factorize(df['date'])[0] + 1 
mapping = dict(zip(df['date_f'], df['date'].dt.date)) 

ax = sns.regplot('date_f', 'score', data=df) 
labels = pd.Series(ax.get_xticks()).map(mapping).fillna('') 
ax.set_xticklabels(labels) 

enter image description here

पैदा करता है यह मुख्य समय श्रृंखला प्रतिगमन में इस्तेमाल किया दृष्टिकोण है। यदि आपके पास दैनिक डेटा है, तो आप कोड 1 को 1 के रूप में कोड करते हैं और दिन बढ़ते समय संख्या बढ़ाते हैं। यह मानता है कि आपके पास नियमित रूप से दूरी वाली श्रृंखला है।