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

时间:2019-02-23 23:39:06

标签: pandas matrix vector size

在带有pandas Python3 中,我具有以下类似的csv格式数据集

Salary_Data.csv

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

但是,我意识到在使用iloc方法时,如果我像下面那样使用:(例如案例1 ),尽管结果相同,但是{ {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,) 会给我带来不同的结果?我应该何时选择使用该:

1 个答案:

答案 0 :(得分:0)

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

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html

在情况1中,您要尝试传递一个列切片。您已经传递了:1,这意味着您想要从第一列到第1列(实际上是第一列)。在您的情况下,Pandas返回一个由(3,)表示的数组。

尝试:

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

输出:

(4,)

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

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