Pandas & NumPy Academy · पाठ

सेशन बनाना और इवेंट क्रमबद्ध करना

उपयोगकर्ता और सेशन के अनुसार इवेंट समूहित करें, टाइमस्टैम्प के अंकगणित से सेशन अवधि निकालें और इवेंट को कालानुक्रमिक क्रम में रखें।

पाठ 1, कुल 4 में से13 चरण

सेशन बनाना और इवेंट क्रमबद्ध करना, CoddyKit पर Pandas & NumPy Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Pandas & NumPy Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

क्लिकस्ट्रीम आँकड़ों को समझना

क्लिकस्ट्रीम डेटासेट प्रत्येक उपयोगकर्ता की कार्रवाई दर्ज करता है: पृष्ठ देखना, बटन पर क्लिक करना और खरीदारी करना — प्रत्येक कार्रवाई एक पंक्ति में उपयोगकर्ता_आईडी, सत्र_आईडी, घटना_प्रकार और समय-चिह्न के साथ दर्ज होती है। किसी भी माप की गणना करने से पहले आपको स्कीमा समझना आवश्यक है। प्रतिनिधि पंक्तियाँ देखने और यह पुष्टि करने के लिए कि समय-चिह्न वाला स्तंभ स्ट्रिंग के बजाय datetime के रूप में पार्स हुआ है, df.dtypes और df.sample(5) चलाइए।

import pandas as pd

df = pd.read_csv('clickstream.csv', parse_dates=['timestamp'])
print(df.dtypes)
print(df.sample(5))

घटनाओं को कालानुक्रमिक क्रम में लगाना

यदि पंक्तियाँ समय के क्रम में न हों, तो घटना का विश्लेषण अर्थहीन हो जाता है। उपयोगकर्ता_आईडी और फिर समय-चिह्न के अनुसार क्रमबद्ध कीजिए, ताकि एक ही उपयोगकर्ता की सभी घटनाएँ लगातार और सही क्रम में दिखाई दें। sort_values(['user_id', 'timestamp']) का उपयोग कीजिए और क्रमबद्ध क्रम को दर्शाने वाला साफ़ पूर्णांक अनुक्रम पाने के लिए index को रीसेट कीजिए।

df = df.sort_values(['user_id', 'timestamp']).reset_index(drop=True)
print(df[['user_id', 'session_id', 'event_type', 'timestamp']].head(10))

सत्र की सीमाएँ निर्धारित करना

यदि सत्र पहले से लेबल किए हुए न हों, तो आप उन्हें 30 मिनट की निष्क्रियता के अंतराल से परिभाषित कर सकते हैं: जब भी उसी उपयोगकर्ता की पिछली घटना के बाद का समय 30 मिनट से अधिक हो, नया सत्र शुरू होता है। लगातार घटनाओं के बीच का अंतर निकालने के लिए groupby('user_id')['timestamp'].diff() का उपयोग कीजिए, फिर जहाँ अंतर सीमा से अधिक हो उन पंक्तियों को सत्र की शुरुआत के रूप में चिन्हित कीजिए।

threshold = pd.Timedelta('30min')

df['time_gap'] = df.groupby('user_id')['timestamp'].diff()
df['is_new_session'] = (df['time_gap'] > threshold) | (df['time_gap'].isna())
df['session_id_inferred'] = df.groupby('user_id')['is_new_session'].cumsum()

print(df[['user_id', 'timestamp', 'time_gap', 'session_id_inferred']].head(10))

सत्र की अवधि की गणना

सत्र की अवधि उस सत्र की पहली और अंतिम घटना के बीच का समय होती है। उपयोगकर्ता_आईडी और सत्र_आईडी के अनुसार समूह बनाकर समय-चिह्न वाले स्तंभ पर max - min की गणना कीजिए। मानव-पठनीय माप के लिए परिणामी Timedelta को .dt.total_seconds() / 60 से मिनटों में बदलिए। शून्य अवधि वाले सत्र एकल-घटना वाली यात्राएँ होते हैं।

session_times = df.groupby(['user_id', 'session_id'])['timestamp'].agg(['min', 'max'])
session_times['duration_minutes'] = (session_times['max'] - session_times['min']).dt.total_seconds() / 60

print(session_times['duration_minutes'].describe())

प्रति सत्र घटनाओं की गणना

किसी सत्र में घटनाओं की संख्या उपयोगकर्ता की संलग्नता का एक संकेतक है। 20 घटनाओं वाला सत्र, 2 घटनाओं वाले सत्र की तुलना में अधिक गहन खोज का संकेत दे सकता है। प्रत्येक समूह की पंक्तियों की संख्या गिनने के लिए groupby(['user_id', 'session_id']).size() का उपयोग कीजिए और परिणाम का नाम event_count रखिए। पूर्ण सत्र-स्तरीय डेटासेट के लिए इस सारांश को सत्र तालिका में वापस मिलाइए।

event_counts = df.groupby(['user_id', 'session_id']).size().rename('event_count')
session_df = session_times.join(event_counts)

print(session_df.describe())

पहली और अंतिम घटनाओं की पहचान

सत्र की पहली घटना प्रवेश-बिंदु दिखाती है, जैसे होमपेज या खोज परिणाम पृष्ठ, और अंतिम घटना बाहर निकलने का व्यवहार दिखाती है, जैसे खरीदारी या तुरंत चले जाना। क्रमबद्ध DataFrame पर groupby().first() और groupby().last() का उपयोग कीजिए। ये प्रवेश और निकास स्तंभ funnel तथा उपयोगकर्ता-स्थायित्व विश्लेषण के लिए आवश्यक इनपुट हैं।

session_entry = df.groupby(['user_id', 'session_id'])['event_type'].first().rename('entry_event')
session_exit = df.groupby(['user_id', 'session_id'])['event_type'].last().rename('exit_event')

print(session_entry.value_counts().head())
print(session_exit.value_counts().head())

सत्र के भीतर घटनाओं को क्रमांक देना

प्रत्येक सत्र के भीतर घटनाओं को क्रमिक संख्या देने से सामान्य घटना-क्रमों का विश्लेषण संभव होता है। groupby(['user_id', 'session_id']).cumcount() + 1 का उपयोग करके event_rank स्तंभ बनाइए। event_rank == 1 पर फ़िल्टर करने से प्रवेश घटना मिलती है; अधिकतम क्रमांक पर फ़िल्टर करने से प्रत्येक सत्र की निकास घटना मिलती है।

df['event_rank'] = df.groupby(['user_id', 'session_id']).cumcount() + 1

# First event of each session
landings = df[df['event_rank'] == 1]
print(landings['event_type'].value_counts())

घटनाओं के बीच का समय निकालना

घटनाओं के बीच का समय — अर्थात् किसी सत्र में लगातार होने वाली घटनाओं के बीच का अंतर — यह बताता है कि उपयोगकर्ता उत्पाद में कितनी तेज़ी से आगे बढ़ते हैं। इसकी गणना groupby(['user_id', 'session_id'])['timestamp'].diff() से कीजिए। विशिष्ट घटना-प्रकारों के बीच बड़े अंतर उस चरण पर झिझक या भ्रम का संकेत दे सकते हैं, जो उपयोगकर्ता अनुभव में सुधार की आवश्यकता दर्शाता है।

df['inter_event_seconds'] = (
    df.groupby(['user_id', 'session_id'])['timestamp']
    .diff()
    .dt.total_seconds()
)

print(df['inter_event_seconds'].describe())

प्रति उपयोगकर्ता सत्रों की संख्या

प्रति उपयोगकर्ता सत्रों की संख्या यह मापती है कि प्रत्येक उपयोगकर्ता कितनी बार वापस आता है। बहुत अधिक सत्र वाले सक्रिय उपयोगकर्ता स्थायित्व के प्रमुख प्रदर्शन संकेतकों को आगे बढ़ाते हैं। प्रति उपयोगकर्ता सत्रों की गणना df.groupby('user_id')['session_id'].nunique() से कीजिए। सत्रों की संख्या पर pd.qcut() का उपयोग करके उपयोगकर्ताओं को एक बार आने वाले, कभी-कभी आने वाले और अक्सर आने वाले उपयोगकर्ताओं में बाँटिए।

sessions_per_user = df.groupby('user_id')['session_id'].nunique().rename('session_count')

print(sessions_per_user.describe())
print(sessions_per_user.value_counts().head(10))

सप्ताह के दिनों के अनुसार सत्रों का वितरण

सप्ताह के किन दिनों में सबसे अधिक सत्र बनते हैं, यह समझने से उत्पाद जारी करने, ईमेल अभियानों और सर्वर की क्षमता बढ़ाने का समय तय करने में सहायता मिलती है। सत्र की शुरुआत के समय-चिह्न से day_of_week निकालकर उसके अनुसार समूह बनाइए। पूर्णांक मानों (0=सोमवार, 6=रविवार) को दिनों के नामों से मैप करने पर रिपोर्ट और चार्ट में परिणाम अधिक पठनीय हो जाता है।

session_starts = df[df['event_rank'] == 1].copy()
session_starts['day_of_week'] = session_starts['timestamp'].dt.day_name()

sessions_by_day = session_starts.groupby('day_of_week').size()
print(sessions_by_day)

सत्र-स्तरीय सारांश तालिका बनाना

सभी गणना किए गए माप — अवधि, घटना संख्या, प्रवेश घटना, निकास घटना और सप्ताह का दिन — को एक ही सत्र-स्तरीय सारांश DataFrame में मिलाइए। यह तालिका funnel विश्लेषण, उपयोगकर्ता-स्थायित्व के मॉडलिंग और मशीन लर्निंग के लिए विशेषताएँ बनाने का आधार है। प्रत्येक पंक्ति एक कच्ची घटना के बजाय एक सत्र को दर्शाती है।

session_summary = session_df.join(session_entry).join(session_exit)
session_summary = session_summary.reset_index()
print(session_summary.columns.tolist())
print(session_summary.head())

त्वरित जाँच

इस पाठ में सिखाई गई Data Analysis की अवधारणाओं की अपनी समझ जाँचिए।

पाठ का पुनरावलोकन

इस पाठ में आपने सीखा: घटनाओं को कालानुक्रमिक क्रम में लगाना और समय-अंतरालों से सत्र की सीमाओं का अनुमान लगाना, सत्र की अवधि और प्रति सत्र घटनाओं की संख्या निकालना, और आगे के विश्लेषण के लिए सत्र-स्तरीय सारांश तालिका बनाना। अब हम उत्पाद के चरणों के बीच रूपांतरण मापने के लिए funnel विश्लेषण का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “सेशन बनाना और इवेंट क्रमबद्ध करना” पाठ निःशुल्क है?

हाँ—“सेशन बनाना और इवेंट क्रमबद्ध करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Pandas & NumPy Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“सेशन बनाना और इवेंट क्रमबद्ध करना” में मैं क्या सीखूँगा?

उपयोगकर्ता और सेशन के अनुसार इवेंट समूहित करें, टाइमस्टैम्प के अंकगणित से सेशन अवधि निकालें और इवेंट को कालानुक्रमिक क्रम में रखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Pandas & NumPy Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Pandas & NumPy Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Pandas & NumPy Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“सेशन बनाना और इवेंट क्रमबद्ध करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Pandas & NumPy Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Pandas & NumPy Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. सेशन बनाना और इवेंट क्रमबद्ध करना
  2. फ़नल विश्लेषण
  3. कोहोर्ट रिटेंशन तालिका
  4. उपयोगकर्ता यात्राओं का विज़ुअलाइज़ेशन
← Pandas & NumPy Academy पर वापस जाएँ