Одна ошибка, с которой вы можете столкнуться при использовании 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