Преобразовать кортеж словарей в dataframe python

#python #python-3.x #pandas

#python #python-3.x #pandas

Вопрос:

Вот упорядоченный кортеж словарей:

 data = ({'a': 1}, {'b': 5}, {'c': 3})
  

Как исправить код, который создает dataframe со строкой для ключей в словарях и столбцом для значений в словарях и другим столбцом для разницы значений между словарями, как показано ниже:

       key  values  difference
0       a       1           1
1       b       5           4
2       c       3          -2
  

Заранее спасибо 🙂

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

1. Пожалуйста, отправьте код, который вы пробовали до сих пор.

Ответ №1:

IIUC

 pd.Series(data).
    apply(pd.Series).
       stack().reset_index(level=1).
          assign(diff=lambda x : x[0].diff().fillna(x[0]))
  level_1    0  diff
0       a  1.0   1.0
1       b  5.0   4.0
2       c  3.0  -2.0
  

Ответ №2:

stack diff если ни одна из ваших записей не содержит нулевых значений


 u = pd.DataFrame([*data]).melt(var_name='key').dropna()

u.assign(difference=u.value.diff().fillna(u.value)).reset_index(drop=True)
  

   key  value  difference
0   a    1.0         1.0
1   b    5.0         4.0
2   c    3.0        -2.0