首页 > 解决方案 > 在 Pandas 中使用 iloc 和负整数进行切片

问题描述

我一直在关注这个 Python 线性回归教程:https ://medium.com/@contactsunny/linear-regression-in-python-using-scikit-learn-f0f7b125a204

使用以下数据集: https ://github.com/contactsunny/data-science-examples/blob/master/salaryData.csv

我的问题在于以下代码:

x = dataset.iloc[:, :-1].values

否定(-1)在这里做什么?如果我使用以下内容作为替代,为什么会出现错误:

x = dataset.iloc[:, 0].values

标签: pythonpandasmachine-learning

解决方案


这意味着,获取除最后一列之外的所有列:

df = pd.DataFrame(np.random.randint(0,100,(5,5)), index=[*'abcde'], columns=[*'ABCDE'])

df.iloc[:,:-1]

输出:

    A   B   C   D
a  79  23   9  89
b  67  60  32  82
c  66  18  41  67
d  90  51  63  29
e  34  65  82  82

该语句获取所有行并对列进行切片以过滤掉最后一个。而且,您的第二个陈述没有错误,这是一个很好的陈述。

df.iloc[:, 0]

输出:

a    79
b    67
c    66
d    90
e    34
Name: A, dtype: int3

获取第一列的所有行(位置 0)。


推荐阅读