Как исправить: при использовании всех скалярных значений необходимо передать индекс


Одна ошибка, с которой вы можете столкнуться при использовании pandas:

ValueError: If using all scalar values, you must pass an index

Эта ошибка возникает, когда вы пытаетесь создать кадр данных pandas, передав все скалярные значения, но также не можете передать индекс.

В следующем примере показано, как исправить эту ошибку на практике.

Как воспроизвести ошибку

Предположим, мы пытаемся создать pandas DataFrame из нескольких скалярных значений:

import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#attempt to create DataFrame from scalar values
df = pd.DataFrame({'A ': a, 'B ': b, 'C ': c, 'D ': d})

ValueError: If using all scalar values, you must pass an index

Мы получаем ошибку, потому что мы передали в DataFrame только скалярные значения, но не смогли передать индекс.

Как исправить ошибку

Вот три метода, которые вы можете использовать, чтобы исправить эту ошибку:

Метод 1: преобразование скалярных значений в список

import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#create DataFrame by transforming scalar values to list
df = pd.DataFrame({'A': [a], 'B': [b], 'C': [c], 'D': [d]})

#view DataFrame
df
 A B C D
0 1 2 3 4

Метод 2: передать скалярные значения и передать индекс

import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#create DataFrame by passing scalar values and passing index
df = pd.DataFrame({'A ': a, 'B ': b, 'C ': c, 'D ': d}, index=[ 0 ])

#view DataFrame
df
 A B C D
0 1 2 3 4

Способ 3: поместить скалярные значения в словарь

import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#define dictionary of scalar values
my_dict = {' A ':1, 'B ':2, 'C ':3, 'D ':4}

#create DataFrame by passing dictionary wrapped in a list
df = pd.DataFrame([my_dict])

#view DataFrame
df
 A B C D
0 1 2 3 4

Обратите внимание, что каждый метод создает один и тот же DataFrame.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить: нет модуля с именем pandas
Как исправить: нет модуля с именем numpy
Как исправить: столбцы перекрываются, но суффикс не указан
Как исправить: SettingWithCopyWarning в Pandas