मैं ग्रुपिंग फ़ंक्शन पर फ़िल्टर लागू करने का प्रयास कर रहा था, लेकिन मुझे सही सिंटैक्स नहीं मिल रहा है। आम तौर पर जिस तरह से हम एसक्यूएल में ग्रुपिंग फ़ंक्शन पर फ़िल्टर लागू करते हैं, मैं पंडों में एक ही सुविधा या कार्यक्षमता की तलाश में हूं। यह मेरी क्वेरी है, और मैं परिणाम को फ़िल्टर करना चाहता हूं जहां गिनती> = 5 घर। समूह ('स्थान')। agg ({'price_per_sqft': ['माध्य', 'std', 'गिनती']})

Result of above query

क्या आप मुझे परिणाम फ़िल्टर करने का तरीका दिखा सकते हैं?

1
ramreddy bolla 13 अक्टूबर 2020, 12:36

1 उत्तर

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

MultiIndex से बचने के लिए पहले groupby के बाद price_per_sqft कॉलम जोड़ें और फिर boolean indexing:

df = home.groupby('location')['price_per_sqft'].agg(['mean','std','count'])
df1 = df[df['count']>=5]

या DataFrame.query :

df1 = df.query("count>=5")

एक अन्य विचार का उपयोग समेकन नाम से किया जाता है:

df = home.groupby('location').agg(avg=('price_per_sqft', 'mean'),
                                  std=('price_per_sqft', 'std'),
                                  counts=('price_per_sqft', 'count'))
df1 = df[df['counts']>=5]
0
jezrael 13 अक्टूबर 2020, 12:45