为什么在 dataframe.iloc() 中使用 ':' 会给我不同的值大小?



in python3 带有pandas,我有以下csv格式数据集,如

salary_data.csv

YearsExperience,Salary
1.1,39343.00
1.3,46205.00
1.5,37731.00

但是,我在使用iloc方法时意识到,如果我使用以下:(例如 case 1 ),尽管结果是相同的,但Size的表示方式不同。

import pandas as pd
dataset = pd.read_csv('data')
# Case 1
dataset.iloc[:, :1].values # Size: (3, 1)
# Case 2
dataset.iloc[:, 0].values # Size: (3,)

为什么添加:给我一个不同的结果?我什么时候应该选择使用该:

它在熊猫页面中有很好的记录。

https://pandas.pydata.org/pandas-docs/stable/reference/PANDAS.DATAFRAME.ILOC.HTML

在情况1中您要做的是通过列切片。您已经通过:1,这意味着您需要从第一列到Col 1,这实际上是第一个。熊猫返回一个数组,该数组在您的情况下由(3,)表示。

尝试:

x = np.array([1, 2, 3, 4])
x.shape

输出:

(4,)

您可以在此处获得有关索引和切片的更多信息:

https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#indexing-slicing-slicing-with-labels

最新更新