Вы вызываете неправильный конструктор для вашего DataFrame.Со словарем скалярных значений, где ключи становятся индексом, вы хотите использовать конструктор .from_dict
:
import pandas as pd
data= {'data1': 1, 'data2': 2, 'data3': 15}
pd.DataFrame.from_dict(data, orient='index', columns=['Total'])
# Total
#data1 1
#data2 2
#data3 15
Чтобы объяснить возникшую проблему при создании DataFrame с помощью pd.DataFrame исловарь по умолчанию, чтобы сделать ключи DataFrame столбцами.Обычно значения переданного словаря подобны массиву, что позволяет pandas
определить, сколько строк сделать.Однако со всеми скалярными значениями и отсутствием индекса невозможно узнать, сколько строк должно быть.
data= {'data1': 1, 'data2': 2, 'data3': 15}
pd.DataFrame(data)
#ValueError: If using all scalar values, you must pass an index
Чтобы сделать это правильно, вы должны указать индекс:
pd.DataFrame(data, index=[0])
# data1 data2 data3
#0 1 2 15
Или сделать хотя бы одно значение типа массива данных:
data2 = {'data1': 1, 'data2': 2, 'data3': [15]}
pd.DataFrame(data2)
# data1 data2 data3
#0 1 2 15