почему df ['A'] получают серию панд и df [['A']] получают рамку данных pandas [duplicate]

Пожалуйста, проверьте, как только выбранная база данных не была вызвана, потому что некоторая база данных не выбрана

Проверьте

mysql_select_db('database name ')or DIE('Database name is not available!');

перед запросом MySQL, а затем перейдите к следующему шагу

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

f($result === FALSE) {
    die(mysql_error());
16
задан FortuneFaded 29 October 2015 в 16:11
поделиться

3 ответа

Для объектов pandas (Series, DataFrame) оператор индексирования [] принимает только

  1. colname или список столбцов для выбора столбцов
  2. slicing или Boolean array для выбора строки (строк), т. е. она относится только к одному измерению кадра данных.

Для df[[colname(s)]] внутренние скобки для списка, а внешние скобки - индексирование оператора, то есть вы должны использовать двойные скобки, если вы выберете два или более столбца. С одним именем столбца одна пара скобок возвращает серию, в то время как двойные скобки возвращают фрейм.

Кроме того, df.ix[df['A'] < 3,['A','C']] или df.loc[df['A'] < 3,['A','C']] лучше, чем прикованный выбор, чтобы избежать возврата копии по сравнению с представлением

Для получения дополнительной информации см. документацию pandas

35
ответ дан Bhargav Rao 24 August 2018 в 23:53
поделиться

Поскольку у вас нет столбцов с именем 'A','C', это то, что вы пытаетесь сделать, что поднимет KeyError, поэтому вам нужно использовать итеративный для подвыборки из df.

Итак,

df[df['A'] < 3]['A','C']

поднимает

KeyError: ('A', 'C')

to

In [261]:
df[df['A'] < 3][['A','C']]

Out[261]:
   A  C
0  0  1
1  2  5

Это ничем не отличается от попыток:

df['A','C']

, поэтому вам нужны двойные квадратные скобки:

df[['A','C']]

Обратите внимание, что современные путь должен использовать .ix:

In [264]:
df.ix[df['A'] < 3,['A','C']]

Out[264]:
   A  C
0  0  1
1  2  5

. Так что вы работаете на представлении, а не в потенциальной копии

6
ответ дан EdChum 24 August 2018 в 23:53
поделиться

Поскольку внутренние скобки - это просто синтаксис python (буквальный) для списка.

Внешние скобки - это операция индексатора объекта dataframe pandas.

В этом примере использования inner ['A', 'B'] определяет список столбцов, передаваемых как один аргумент в операцию индексатора, который обозначается внешними скобками.

1
ответ дан Pavel Savara 24 August 2018 в 23:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: