मैं निम्नलिखित कार्य के साथ खुद को भ्रमित कर रहा हूं और मुझे आशा है कि कोई मुझे सही दिशा में इंगित कर सकता है। मेरे पास दो डेटासेट हैं, एक जनवरी 2019 के डेटा के साथ और दूसरा जनवरी 2020 के डेटा के साथ।

Df1

ID     Date
5177   2019-01-31
5178   2019-01-31
5179   2019-01-31
5180   2019-01-31
5181   2019-01-31
5182   2019-01-31
5183   2019-01-31
5184   2019-01-30
5185   2019-01-30
5186   2019-01-30

Df2

ID     Date
2918   2020-01-31
2919   2020-01-31
2920   2020-01-31
2921   2020-01-31
2922   2020-01-31
2923   2020-01-31
2924   2020-01-31
2925   2020-01-31
2926   2020-01-30
2927   2020-01-30

मैंने उन्हें लाइन चार्ट के रूप में निम्नानुसार प्लॉट करने की कोशिश की:

df1.groupby('Date').size().plot()
df2.groupby('Date').size().plot()

plt.xticks(rotation=90)
plt.show() 

लेकिन आउटपुट अच्छा नहीं है क्योंकि परिणाम चार्ट के दो अलग-अलग क्षेत्रों में दिखाए गए हैं (एक 2019 है और दूसरा 2020 है)। तो मैं जो करने की कोशिश कर रहा हूं वह इन डेटा को बार चार्ट के रूप में प्लॉट करना है, ताकि बार-बार डेटा की आवृत्ति की तुलना आसानी से महीनों के माध्यम से की जा सके।

मैंने निम्नानुसार कोशिश की है:

df1.groupby(['Date'])['Date'].size().plot(kind='bar')
df2.groupby(['Date'])['Date'].size().plot(kind='bar')

लेकिन यह df1 के मानों और df2 के मानों के बीच अंतर नहीं करता है (साथ ही, बार एक ही रंग में हैं)।

मैं जो चाहता हूं वह एक्स-अक्ष पर तारीख के साथ एक चार्ट है (केवल दिन, जैसे महीने समान हैं और मुझे पता है कि मैं किस वर्ष की तुलना कर रहा हूं)। अलग-अलग रंगों के साथ, मुझे 1 से डेटा और 2 से डेटा प्लॉट करना होगा (किंवदंती बताएगी कि कौन सा df1/2 है)।

क्या आप कृपया मुझे बता सकते हैं कि अपेक्षित आउटपुट प्राप्त करने के लिए डेटा कैसे प्लॉट करें?

धन्यवाद

3
user12907213 31 अक्टूबर 2020, 03:16

1 उत्तर

सबसे बढ़िया उत्तर

आप पहले एक डेटाफ़्रेम में शामिल हो सकते हैं, लेकिन पहले अपनी तिथियों के प्रारूप को strftime के साथ '%m-%d' में बदल सकते हैं, और आप rename के आउटपुट को size कॉलम में भी बदल सकते हैं। साल।

df1['Date'] = pd.to_datetime(df1['Date']).dt.strftime('%m-%d')
df2['Date'] = pd.to_datetime(df2['Date']).dt.strftime('%m-%d')
(df1.groupby('Date').size().rename('Size').to_frame().join(
    df2.groupby('Date').size().rename('Size').to_frame(),
    lsuffix='_2019', rsuffix='_2020').plot(kind='bar'))

enter image description here

0
David Erickson 31 अक्टूबर 2020, 03:42