Почему использование ':' в dataframe.iloc () дает мне другой размер значений? - PullRequest
0 голосов
/ 24 февраля 2019

В Python3 с pandas, у меня есть следующий набор данных формата csv, как показано ниже

Salary_Data.csv

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

Однако я понял,при использовании метода iloc, если я использую :, как показано ниже (например, Случай 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 голосов
/ 24 февраля 2019

Это довольно хорошо задокументировано на страницах панд.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...