Это происходит потому, что в ваших данных d
нет значений / имен столбцов с именами 1
, 2
и 3
. Из pandas doc столбцы параметров:
столбцы: метки столбцов индекса или массива для использования в результирующем кадре. По умолчанию будет RangeIndex (0, 1, 2,…, n), если не указаны метки столбцов.
Здесь вы можете увидеть все три случая:
df = pd.DataFrame(d) #Uses default method for columns
print(df)
Выход:
a b c
0 a b c
Передача значений RangeIndex в columns
:
d = {'a':['a'], 'b':['b'], 'c':['c']}
pd.DataFrame(d, columns = [1,2,3]) #These values are not the RangeIndex values, but label values
Вывод:
Empty dataframe #Because there's no columns names 1, 2, or 3
Передача значений индекса в columns
:
df = pd.DataFrame(d,columns = ['a','b','c'])
print(df)
Вывод:
a b c
0 a b c