2015-03-24 3 views
1

У меня есть следующий Dict:Python ДИКТ к панды dataframe

{6550: 610658, 6551: 610658, 6552: 610658, 6553: 610658} 

Я хотел бы, чтобы преобразовать это в панд dataframe с заголовками столбцов «Цена» и «Volume». Нужный dataframe будет выглядеть следующим образом:

Price,Volume 
6550,610658 
6551,610658 
6552,610658 
6553,610658 

Я попытался следующие:

newdf = pd.DataFrame.from_dict(d, orient='index') 

Это приводит к:

,0 
6550,610658 
6551,610658 
6552,610658 
6553,610658 

Я не уверен, почему первая строка добавляется. Как создать этот фреймворк без создания первой строки. Я также не знаю, как добавить «Price» и «Volume» в качестве заголовков столбцов.

Может ли кто-нибудь указать мне в правильном направлении. Благодарю.

ответ

0

Таким образом, вы получаете 0 как это генерируемое имя столбца, чтобы достичь нужной структуры df, вам нужно сбросить индекс, поскольку первый столбец был использован в качестве индекса, тогда вам нужно назначить нужные имена столбцов :

In [52]: 

d = {6550: 610658, 6551: 610658, 6552: 610658, 6553: 610658} 
newdf = pd.DataFrame.from_dict(d, orient='index') 
newdf.reset_index(inplace=True) 
newdf.columns = ['Price','Volume'] 
newdf 
Out[52]: 
    Price Volume 
0 6552 610658 
1 6553 610658 
2 6550 610658 
3 6551 610658 
0

Я думаю, что проблема заключается в переменной 'd'. Вы должны определить его как

d = {{'Price', 'x', 'y', 'z'}, {'Volume', 'x, 'y, 'z'}} 
2

Это более простой синтаксис для этого:

df = pd.DataFrame(d.items(), columns=['Date', 'DateValue']) 
print df 
>> Price Volume 
    0 6552 610658 
    1 6553 610658 
    2 6550 610658 
    3 6551 610658 

уведомление, хотя о том, что заказ на словарь не сохраняется в dataframe.

+0

Ваши имена столбцов в ctor не соответствуют вашему выходу df – EdChum

Смежные вопросы