मान लें कि मेरे पास उपयोगकर्ता गतिविधि का लॉग है और मैं प्रति दिन अद्वितीय उपयोगकर्ताओं की संख्या और अद्वितीय उपयोगकर्ताओं की संख्या उत्पन्न करना चाहता हूं।पांडा कुल गणना अलग
import numpy as np
import pandas as pd
df = pd.DataFrame({'date': ['2013-04-01','2013-04-01','2013-04-01','2013-04-02', '2013-04-02'],
'user_id': ['0001', '0001', '0002', '0002', '0002'],
'duration': [30, 15, 20, 15, 30]})
अवधि को समेकित करना बिल्कुल स्पष्ट है:
group = df.groupby('date')
agg = group.aggregate({'duration': np.sum})
agg
duration
date
2013-04-01 65
2013-04-02 45
योग अवधि मुझे क्या करना चाहते हैं और एक ही समय में distincts गिनती, लेकिन मैं के लिए एक समान लगता है नहीं कर पा रहे count_distinct:
agg = group.aggregate({ 'duration': np.sum, 'user_id': count_distinct})
यह काम करता है, लेकिन निश्चित रूप से एक बेहतर तरीका है, नहीं?
group = df.groupby('date')
agg = group.aggregate({'duration': np.sum})
agg['uv'] = df.groupby('date').user_id.nunique()
agg
duration uv
date
2013-04-01 65 2
2013-04-02 45 1
मैं सोच रहा हूँ मैं सिर्फ एक समारोह है कि एकीकृत फ़ंक्शन करने के लिए एक श्रृंखला वस्तु की विशिष्ट वस्तुओं की गणना देता है प्रदान करने की आवश्यकता है, लेकिन मैं पर विभिन्न पुस्तकालयों के लिए जोखिम का एक बहुत जरूरत नहीं है मेरी निपटान। साथ ही, ऐसा लगता है कि ग्रुपबी ऑब्जेक्ट पहले ही इस जानकारी को जानता है, तो क्या मैं सिर्फ प्रयास को डुप्लिकेट नहीं करूँगा?
यह है कि करने के लिए वर्गीकृत किया। pd.Series.nunique वह है जो मुझे नहीं मिला, ठीक है, सही तरीके से काम नहीं कर सका। हिंडसाइट में बहुत स्पष्ट है। धन्यवाद! – dave
यह उत्तर पुराना है। अब आप सीधे 'नूनिक' का उपयोग कर सकते हैं। –