Преобразование значения словаря в фрейм данных pandas

#python #python-3.x #pandas #dataframe

#python #python-3.x #pandas #фрейм данных

Вопрос:

У меня есть словарь, который я хочу преобразовать в фрейм данных pandas. Проблема в том, что столбцы и строки находятся в части значений моего словаря. Как мне преобразовать dict.values в фрейм данных?

Например: test = {TableName('Extract','Extract): myDesiredDf}

Вот набор данных:

 {TableName('Extract', 'Extract'):              depot_name          market       submarket realized_date  
 0                  <NA>          Boston          Boston    2020-09-18   
 1                  <NA>        Bay Area        Bay Area    2020-09-07   
 2                  <NA>     Minneapolis     Minneapolis    2020-08-27   
 3                  <NA>  Washington, DC  Washington, DC    2020-09-10   
 4                  <NA>        New York        New York    2020-09-07   
 ...                 ...             ...             ...           ...   
 79069  Unknown Location  Washington, DC  Washington, DC    2020-09-14   
 79070  Unknown Location  Washington, DC  Washington, DC    2020-09-15   
 79071  Unknown Location  Washington, DC  Washington, DC    2020-09-16   
 79072  Unknown Location  Washington, DC  Washington, DC    2020-09-22   
 79073  Unknown Location  Washington, DC  Washington, DC    2020-09-25   
 
                         category subcategory  actual  denom  nume  
 0                      Headcount  Clocked-In    11.0    NaN   NaN  
 1                      Headcount  Clocked-In    40.0    NaN   NaN  
 2                      Headcount  Clocked-In     8.0    NaN   NaN  
 3                      Headcount  Clocked-In    25.0    NaN   NaN  
 4                      Headcount     Unknown    85.0    NaN   NaN  
 ...                          ...         ...     ...    ...   ...  
 79069  Repairs: Unknown Location       eBike    18.0    NaN   NaN  
 79070  Repairs: Unknown Location       eBike    35.0    NaN   NaN  
 79071  Repairs: Unknown Location       eBike    14.0    NaN   NaN  
 79072  Repairs: Unknown Location       eBike     3.0    NaN   NaN  
 79073  Repairs: Unknown Location       eBike     2.0    NaN   NaN  
 
 [79074 rows x 9 columns]}
  

Что я пробовал:

 pd.Dataframe(test)
ValueError: If using all scalar values, you must pass an index

pd.DataFrame(test.values())
ValueError: Must pass 2-d input. shape=(1, 79074, 9)

pd.DataFrame(test,index=[0])
ValueError: Shape of passed values is (9, 1), indices imply (1, 1)
  

Мой желаемый результат:
Я хочу, чтобы test.values() / myDesiredDf был фреймом данных pandas.

Комментарии:

1. Не можете ли вы транспонировать. df.T

2. Попробуйте pd.DataFrame(test.values()[0]) — ошибка указывает на то, что вы преобразуете трехмерный объект.

3. @Roryo’Connell это не сработало, но pd.DataFrame(list(test.values())[0]) сделал свое дело. Спасибо!

Ответ №1:

Вы пробовали pd.DataFrame.from_dict(тест)?

Ответ №2:

 pd.DataFrame(list(test.values())[0])