#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