Настройка
packed = pd.DataFrame({
'all_labels': [['A', 'B', 'C']],
'values': [[[10, 1, 3], [5, 6, 3], [0, 0, 0]]],
'labels': [['X', 'Y', 'Z']]
})
Не усложняйте
pd.DataFrame(packed['values'][0], packed['all_labels'][0], packed['labels'][0])
X Y Z
A 10 1 3
B 5 6 3
C 0 0 0
rename
и dict
распаковка
Столбцы так близкок именам аргументов конструктора dataframe, я не смог устоять ...
rnm = {'all_labels': 'index', 'values': 'data', 'labels': 'columns'}
pd.DataFrame(**packed.rename(columns=rnm).loc[0])
X Y Z
A 10 1 3
B 5 6 3
C 0 0 0
Без rename
и list
вместо распаковки
Убедившись в том, что списокимена столбцов в том же порядке, аргументы ожидаются в конструкторе pandas.DataFrame
pd.DataFrame(*packed.loc[0, ['values', 'all_labels', 'labels']])
X Y Z
A 10 1 3
B 5 6 3
C 0 0 0
дополнительный материал
метод pandas.DataFrame.to_dict
вернет словарь, который выглядит
df = pd.DataFrame(*packed.loc[0, ['values', 'all_labels', 'labels']])
df.to_dict('split')
{'index': ['A', 'B', 'C'],
'columns': ['X', 'Y', 'Z'],
'data': [[10, 1, 3], [5, 6, 3], [0, 0, 0]]}
То, что мы могли бы обернуть в другой вызов конструктора dataframe, чтобы получить что-то очень похожее на то, с чего мы начали.
pd.DataFrame([df.to_dict('split')])
index columns data
0 [A, B, C] [X, Y, Z] [[10, 1, 3], [5, 6, 3], [0, 0, 0]]