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)