Monday 15 August 2011

python - How to use Pandas diff() on DataFrame that has multiple groups? -


मेरे पास डेटाफ़्रेम है जिसमें कॉलम देश , दिनांक है, और उपयोगकर्ता (यानी उपयोगकर्ताओं की संख्या)। मैं तारीख कॉलम पर एक diff करना चाहता हूं, लेकिन प्रत्येक देश के लिए गणना फिर से प्रारंभ करें ऐसा कैसे करें?

उदाहरण डेटा इस तरह दिखाई दे सकता है:

  दिनांक देश के उपयोगकर्ताओं 2015-03-01 यूएस 3 2015-03-02 यूएस 7 2015-03- 03 यूएस 9 2015-03-04 यूएस 11 2015-03-01 एफआर 4 2015-03-02 एफआर 8 2015-03-03 एफआर 12 2015-03-04 एफआर 16   <पी> अंतर को यह देना चाहिए:  <पूर्व>  2015-03-01 अमेरिकी नाओएन 2015-03-02 यूएस 4 2015-03-03 यूएस 2 2015-03-04 यूएस 2 2015-03-01 फ़्रांस एनएएन 2015-03-02 एफआर 4 2015-03-03 एफआर 4 2015-03-04 एफआर 4  

जैसा कि टिप्पणियों में बताया गया है, यह एक समूह समस्या है (विभाजित-लागू-संयोजन पैटर्न के लिए दस्तावेज़ में देखें)।

आपके उदाहरण में, हम चाहते हैं देश के कॉलम से समूह के लिए, फिर उपयोगकर्ता कॉलम पर एक diff करें (आप दिनांक कॉलम पर कहते हैं, लेकिन वह आपकी अपेक्षित आउटपुट से मेल नहीं खाता):

  & gt; & gt; & gt; Df ["new_diff"] = df.groupby ("देश") ["उपयोगकर्ता"]। Diff ()> gt; & gt; & gt; Df तारीख देश के उपयोगकर्ताओं new_diff 0 2015-03-01 यूएस 3 NaN 1 2015-03-02 यूएस 7 4 2 2015-03-03 अमेरिका 9 2 3 2015-03-04 यूएस 11 2 4 2015-03-01 एफआर 4 नाएन 5 2015-03-02 एफआर 8 4 6 2015-03-03 एफआर 12 4 7 2015-03-04 एफआर 16 4  

ध्यान दें कि एक वास्तविक समस्या में आपको फैसला करना होगा जिस पर आप लापता दिन और इतने पर (और मैं कॉलम पर सॉर्ट जैसे दिनांक में फेंक देते हैं) सुनिश्चित करने के लिए कि चीजें क्रम में हैं, मुझे लगता है कि वे हैं।)


No comments:

Post a Comment