如何根据布尔标准拆分数据框?

时间:2013-02-19 12:07:28

标签: pandas

假设dfpandas数据框。我想根据一些标准将其拆分为两个数据帧。我发现这样做的最好方法就是

df0, df1 = [v for _, v in df.groupby(df['class'] != 'special')]

在上面的示例中,标准是groupby方法的参数。生成的df0由子数据框组成,其中class字段具有'special',而df1基本上是{{1}的补充}}。 (不幸的是,使用这种结构,首先返回由失败标准的项组成的子数据帧,这是不直观的。)

上述结构的缺点是它不是特别易读,当然也不像某些假设的df0方法那样可读。

splitby

由于分割像这样的数据帧是我经常需要做的事情,我认为可能存在内置函数,或者可能是已建立的习惯用法。如果是的话,请告诉我。

1 个答案:

答案 0 :(得分:7)

我认为最可读的方法是:

m = df['class'] != 'special'
a, b = df[m], df[~m]

我没有遇到过这方面的特殊方法......