8

假设这df是一个pandas数据框。我想根据一些标准将它分成两个数据框。我发现这样做的最好方法是

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

在上面的示例中,标准是groupby方法的参数。结果由字段具有df0的子数据帧组成,基本上是 的补码。(不幸的是,使用这种结构,首先返回由不符合标准的项目组成的子数据框,这不直观。)class'special'df1df0

上面的结构有一个缺点,它不是特别可读,当然不像,例如,一些假设的splitby方法,如

df0, df1 = df.splitby(df['class'] == 'special')

由于像这样拆分数据框是我经常需要做的事情,我认为可能有一个内置函数,或者可能是一个既定的习惯用法,可以做到这一点。如果是这样,请告诉我。

4

1 回答 1

10

我认为最易读的方法是:

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

我还没有遇到这种特殊的方法......

于 2013-02-19T12:22:05.063 回答