मान लीजिए कि df
एक pandas
डेटाफ़्रेम है। मैं इसे कुछ मानदंडों के अनुसार दो डेटाफ्रेम में विभाजित करना चाहता हूं। सबसे अच्छा तरीका है मैं ऐसा करने के लिए मिल गया है की तरहएक बूलियन मानदंड के अनुसार डेटाफ्रेम कैसे विभाजित करें?
df0, df1 = [v for _, v in df.groupby(df['class'] != 'special')]
ऊपर के उदाहरण में कुछ, कसौटी groupby
विधि करने के लिए तर्क है। परिणामी df0
में उप-डेटाफ्रेम शामिल है जहां class
फ़ील्ड में मान 'special'
, और df1
मूल रूप से df0
का पूरक है। (दुर्भाग्य से, इस निर्माण के साथ, आइटम से मिलकर उप dataframe कि कसौटी पहले लौटा दिए जाते हैं असफल है, जो सहज नहीं है।)
ऊपर निर्माण दोष यह है कि यह विशेष रूप से पठनीय, निश्चित रूप से नहीं नहीं दे रहा है के रूप में पठनीय के रूप में, उदाहरण के लिए, कुछ काल्पनिक splitby
विधि की तरह
df0, df1 = df.splitby(df['class'] == 'special')
इस तरह एक dataframe बंटवारे के बाद से कुछ मैं अक्सर क्या करने की जरूरत है, मैं समझ निर्मित एक समारोह, या शायद एक स्थापित मुहावरा हो सकता है ऐसा करने के लिए। यदि हां, तो कृपया मुझे बताएं।
मैं क्या कर सकता 'd = dict (सूची (df.groupby (डीएफ ["वर्ग"]! = "बी"))) 'और फिर' डी [0] '/' डी [झूठी] 'और' डी [1] '/' डी [सही] का उपयोग करें इसके बजाए – DSM
@DSM वास्तव में, ग्रुपबी शायद इसे स्टोर करने का एक बेहतर तरीका है (!) –
@ एंडीहेडन: आपका क्या मतलब है? यह बहुत अच्छा होगा अगर कोई समूह की सामग्री को अपने (छद्म-) कुंजी से संबोधित कर सकता है, लेकिन यह काम नहीं करता है; यानी 'df.groupby (df.class! =' b ') [True]' एक त्रुटि फेंकता है ... मुझे नहीं पता कि समूहबी ऑब्जेक्ट को एक dict ... में परिवर्तित किए बिना इस तरह की चीज़ कैसे करें ... – kjo