मैं एक पांडा डेटाफ्रेम में एक नया कॉलम जोड़ने के बारे में कैसे जा सकता हूं, जहां मैं चाहता हूं कि कॉलम में अन्य कॉलम मानदंडों के आधार पर काउंटर हो, उदाहरण के लिए (वांछित आउटपुट दिखाया गया है):

    WeekCounter  DayofWeeek
    1            Monday
    1            Monday
    1            Tuesday
    1            Sunday
    2            Monday
    2            Wednesday
    2            Thursday
    2            Sunday
    3            Monday
    3            Monday
    3            Monday

जब भी रविवार से सोमवार तक कॉलम का मान बदलता है तो मैं एक कॉलम कैसे बना सकता हूं जो काउंटर के रूप में कार्य करता है? मेरा मूल प्रयास एक नेस्टेड अगर कथन के साथ लूप के लिए होगा, लेकिन क्या इसे पूरा करने में एक और पांडा-मूल तरीका है?

0
Harold Chaw 4 जिंदा 2018, 05:02

1 उत्तर

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

जाँच करें कि क्या वर्तमान पंक्ति "सोमवार" है जबकि पिछली पंक्ति "रविवार" है ताकि बूलियन मास्क उत्पन्न किया जा सके। फिर, परिणाम पर cumsum प्रदर्शन करें।

df['WeekCounter'] = (df.DayofWeek.eq('Monday') 
        & df.DayofWeek.shift().eq('Sunday')).cumsum() + 1

df

    WeekCounter  DayofWeek
0             1     Monday
1             1     Monday
2             1    Tuesday
3             1     Sunday
4             2     Monday
5             2  Wednesday
6             2   Thursday
7             2     Sunday
8             3     Monday
9             3     Monday
10            3     Monday
3
cs95 4 जिंदा 2018, 09:01