python pandas:根据列值拆分数据框

Eda*_*ame 3 python numpy pandas

我有一个csv文件,当我读入pandas数据框时,它看起来像:

data = pd.read_csv('test1.csv')
print(data)
Run Code Online (Sandbox Code Playgroud)

输出看起来像:

   v1  v2  v3  result
0  12  31  31       0
1  34  52   4       1
2  32   4   5       1
3   7  89   2       0
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以根据结果列中的值拆分数据帧。即,如果结果= 0,则转到新的数据帧data_0:

   v1  v2  v3  result
0  12  31  31       0
1   7  89   2       0
Run Code Online (Sandbox Code Playgroud)

如果结果= 1,则转到数据框data_1

   v1  v2  v3  result
0  34  52   4       1
1  32   4   5       1
Run Code Online (Sandbox Code Playgroud)

有任何熊猫功能可以做到吗?还是我必须编写自己的循环函数来创建两个数据帧?非常感谢!

小智 5

熊猫允许您以非常直接的方式对数据进行切片和操作。您也可以执行与使用键而不是属性名称的Yakym访问相同的操作。

data_0 = data[data['result'] == 0]
data_1 = data[data['result'] == 1]
Run Code Online (Sandbox Code Playgroud)

您甚至可以通过直接处理行数据来添加结果列,例如:

data['v_sum'] = data[v1] + data[v2] + data[v3]
Run Code Online (Sandbox Code Playgroud)