python - 熊猫数据框条件选择
问题描述
我有一个 Dataframe,我试图在上面应用一些 ml 算法。我使用熊猫来处理它,但我有几个问题:
正如您在第三个单元格中看到的,我已将 Y 拆分为 Ytr 和 Yts。在此之后,数据框会丢失其列名。我试图再次命名该列,但它不起作用。
在第 4 个单元格中,我尝试使用条件语句创建 Y 的子集,其中 Y 值为 1(它被命名为 ytr1)。但它返回一个空数据框。
对整个代码的任何建议都将不胜感激,因为我对 Pandas 并没有真正的经验
注意:如果你没有使用过 jupyter notebook,#%% 只是意味着一个新的单元格。
#%%
from pandas import DataFrame as df
import random
import numpy as np
import pandas as pd
import re
#%%
# Preparing the DataFrame
labels = pd.read_csv(r'A:\Data Sets\Pima Indian Diabetes\labels.csv', header=None)
ll = labels.loc[:, 0].tolist()
data = pd.read_csv(r'A:\Data Sets\Pima Indian Diabetes\pima-indians-diabetes2.csv', names=ll)
i = data.columns.values.tolist() # i is the labels of the csv file
i[-1]
#%%
# Spliting the Dataset
X = data.drop(i[-1], axis=1)
Y = data.iloc[:, 8]
Y = Y.to_frame()
Y = pd.DataFrame(Y.values.reshape(-1, 1), columns=i[-1])
tr_idx = data.sample(frac=0.7).index
Xtr = df(X[X.index.isin(tr_idx)])
Xts = df(X[~X.index.isin(tr_idx)])
Ytr = df(Y[X.index.isin(tr_idx)], columns='result')
Yts = df(Y[~X.index.isin(tr_idx)], columns=i[-1])
#%%
# splitting the Classes
ytr1 = Ytr.drop(Ytr[Ytr.iloc[0]!=1].index)
X:除 Labels\classes 之外的所有列,为 0 或 1 Y:作为标签加载的 csv 文件的最后一列 Xtr:我计划用于训练的 X 的分数 Xts:我计划用于的 X 的分数测试
解决方案
推荐阅读
- mysql - 如何指定执行分组的顺序
- spring-jms - 带有任务执行器和断路器的 JMS 侦听器的 Spring 集成 Java DSL
- linux - bash中的双变量
- php - 必发 API PHP 代码不起作用....(没有任何响应)
- excel - 如何在excel中将时间转换为十进制?
- cmd - 从 zsh 暴露 cmd.exe
- c++ - 破坏和构造一个类以清理其成员
- react-native - React Native Scrollview:单击按钮滚动到顶部
- python-3.x - 重新计算方阵中的对角线列表(简化)
- python - 如何显示 Python 字符串中的特定字母?