Выбор строки против столбца в кадре данных - PullRequest
0 голосов
/ 20 мая 2018

В Pandas DataFrame, скажем, автомобилях, я могу выбрать и напечатать один столбец следующим образом:

# country is a column
print(cars['country'])

Однако, когда я пытаюсь сделать то же самое со строкой, у меня не получается:

#US is a row
print(cars['US'])
KeyError: 'US'

Затем я попробовал это, и это сработало:

print(cars['US':'US'])

Итак, в Pandas DataFrame индексы столбцов являются ключами, а индексы строк - нет? Может кто-нибудь объяснить, в чем причина выбора строк?сложнее, чем выбор столбца?

1 Ответ

0 голосов
/ 21 мая 2018

В пандах

cars['Country']

возвращает столбец как Серию.Чтобы разрезать строку как серию, эквивалентной командой будет (при условии, что 'US' является значением индекса):

cars.loc['US']

Если вы сделаете

cars['US':'US']

, вы получитете же данные, но это будет DataFrame вместо Series, поэтому не совсем эквивалентный.

Очевидно, вы не можете ссылаться на столбцы и строки одинаково.Если бы у меня были данные корреляции между всеми акциями в S & P 500, тогда ваши строки и значения индекса имели бы одинаковые элементы.Таким образом, вам нужно знать, ссылается ли df ['AAPL'] на 'AAPL' из индекса или столбцов.Таким образом, df ['AAPL'] является столбцом 'AAPL', в то время как df.loc ['AAPL'] является строкой 'AAPL'.Вы также можете сделать df.loc ['AAPL',:] для строки и df.loc [:, 'AAPL'] для столбца, если вы предпочитаете.

Что касается того, почему они выбрали df ['AAPL '], чтобы быть столбцом, я думаю, что даты обычно указываются в виде строк, поэтому чаще выбирают столбец данных для выполнения какой-либо операции, чем выбор строки.Однако нарезка строк так же проста, как и столбцы, поэтому отличий между ними нет, за исключением нескольких нажатий клавиш.

...