这是字典的有序元组:
data = ({'a': 1}, {'b': 5}, {'c': 3})
如何纠正这样的代码,该代码使数据框在字典中具有用于键的行,在字典中具有用于列的值,而对于字典之间的值差具有另一列,如下所示:
key values difference
0 a 1 1
1 b 5 4
2 c 3 -2
预先感谢:)
答案 0 :(得分: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
答案 1 :(得分:1)
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