Разница между df [x], df [[x]], df ['x'], df [['x']] и df.x - PullRequest
0 голосов
/ 12 мая 2018

Пытаемся понять разницу между 5 примерами в названии. Есть ли случаи использования для рядов против фреймов данных? Когда один должен быть использован поверх другого? Какие эквивалентны?

1 Ответ

0 голосов
/ 12 мая 2018
  1. df[x] - индексировать столбец, используя переменную x. Возвращает pd.Series
  2. df[[x]] - индексировать / вырезать один столбец DataFrame, используя переменную x. Возвращает pd.DataFrame
  3. df['x'] - индексировать столбец с именем 'x'. Возвращает pd.Series
  4. df[['x']] - индексировать / вырезать один столбец DataFrame, имеющий только один столбец с именем «x». Возвращает pd.DataFrame
  5. df.x - нотационная точка доступа, эквивалентная df['x'] (однако есть ограничения на то, что можно назвать x, если точечная нотация должна быть успешно использована). Возвращает pd.Series

С одинарными скобками [...] вы можете индексировать только один столбец как Серию. С двойными скобками, [[...]], вы можете выбрать столько столбцов, сколько вам нужно, и эти столбцы возвращаются как часть нового DataFrame.


Настройка

df
   ID   x
0   0   0
1   1  15
2   2   0
3   3   0
4   4   0
5   5  15

x = 'ID'

Примеры

df[x]

0    0
1    1
2    2
3    3
4    4
5    5
Name: ID, dtype: int64

type(df[x])
pandas.core.series.Series

df['x']

0     0
1    15
2     0
3     0
4     0
5    15
Name: x, dtype: int64

type(df['x'])
pandas.core.series.Series

df[[x]]

   ID
0   0
1   1
2   2
3   3
4   4
5   5

type(df[[x]])
pandas.core.frame.DataFrame

df[['x']]

    x
0   0
1  15
2   0
3   0
4   0
5  15

type(df[['x']])
pandas.core.frame.DataFrame

df.x

0     0
1    15
2     0
3     0
4     0
5    15
Name: x, dtype: int64

type(df.x)
pandas.core.series.Series

Дополнительная литература
Индексирование и выбор данных

...