假设df
是pandas
数据框。我想根据一些标准将其拆分为两个数据帧。我发现这样做的最好方法就是
df0, df1 = [v for _, v in df.groupby(df['class'] != 'special')]
在上面的示例中,标准是groupby
方法的参数。生成的df0
由子数据框组成,其中class
字段具有值'special'
,而df1
基本上是{{1}的补充}}。 (不幸的是,使用这种结构,首先返回由失败标准的项组成的子数据帧,这是不直观的。)
上述结构的缺点是它不是特别易读,当然也不像某些假设的df0
方法那样可读。
splitby
由于分割像这样的数据帧是我经常需要做的事情,我认为可能存在内置函数,或者可能是已建立的习惯用法。如果是的话,请告诉我。
答案 0 :(得分:7)
我认为最可读的方法是:
m = df['class'] != 'special'
a, b = df[m], df[~m]
我没有遇到过这方面的特殊方法......