6
假設df
是pandas
數據幀。我想根據一些標準將它分成兩個數據框。我發現這樣做的最好的方法是一樣的東西如何根據布爾標準分割數據框?
df0, df1 = [v for _, v in df.groupby(df['class'] != 'special')]
在上面的例子中,標準是參數的groupby
方法。得到的df0
由子數據幀組成,其中class
字段具有值'special'
和df1
基本上是df0
的補充。 (不幸的是,用該構建體,其由物品的子數據幀的是失敗首先返回的標準,這是不直觀的。)
上述構建體具有的缺點是它沒有特別的可讀的,當然不是爲可讀的,例如,一些假設splitby
方法類似
df0, df1 = df.splitby(df['class'] == 'special')
由於分裂這樣一個數據幀是我經常需要做的,我想可能有一個內置的功能,或可能建立的成語,爲此。如果是這樣,請讓我知道。
我可能會做'd =字典( list(df.groupby(df [「class」]!=「b」)))'然後用'd [0]'/'d [False]'和'd [1]'/'d [True]相反。 – DSM 2013-02-19 12:25:11
@DSM事實上,groupby可能是更好的存儲方式(!) – 2013-02-19 12:27:55
@AndyHayden:你是什麼意思?如果只能通過其(僞)鍵來處理groupby的內容,那將是非常好的,但它不起作用;即'df.groupby(df.class!='b')[True]'拋出一個錯誤......我不知道如何做這種事情,而不將groupby對象轉換爲字典... – kjo 2013-02-19 14:48:08