2013-10-16 9 views
13

क्या पांडस ग्रुपबी और क्यूकट कमांड को एक कॉलम लौटने के लिए कोई तरीका है जिसमें नेस्टेड टाइल्स हैं? विशेष रूप से, मान लें कि मेरे पास डेटा के 2 समूह हैं और मैं प्रत्येक समूह पर qcut लागू करना चाहता हूं और फिर आउटपुट को एक कॉलम पर वापस कर दूंगा। यह एमएस एसक्यूएल सर्वर के एनटीआईएल() कमांड के समान होगा जो विभाजन() द्वारा अनुमति देता है।पांडस ग्रुपबी और क्यूकट

 A B C 
0 foo 0.1 1 
1 foo 0.5 2 
2 foo 1.0 3 
3 bar 0.1 1 
4 bar 0.5 2 
5 bar 1.0 3 

dataframe में ऊपर मैं बी को qcut समारोह लागू करने के लिए, जबकि एक पर विभाजन सी वापस जाने के लिए

उत्तर

24
import pandas as pd 
df = pd.DataFrame({'A':'foo foo foo bar bar bar'.split(), 
        'B':[0.1, 0.5, 1.0]*2}) 

df['C'] = df.groupby(['A'])['B'].transform(
        lambda x: pd.qcut(x, 3, labels=range(1,4))) 
print(df) 

पैदावार

 A B C 
0 foo 0.1 1 
1 foo 0.5 2 
2 foo 1.0 3 
3 bar 0.1 1 
4 bar 0.5 2 
5 bar 1.0 3 
चाहते हैं
संबंधित मुद्दे