python 字典组成的列表 pandas_带有嵌套列表的Python字典键到pandas DataFram

您希望将给定键的每个子列表^{}组合在一起,以组合每个子列表中的值来形成新行:>>> list(zip(*D['d1']))

[('a1', 'a2', 'a3'), ('a1', 'a2', 'a3'), ('a1', 'a2', 'a3')]

然后将此应用到字典中的每个值,以生成一个平坦的行序列,在该序列中选择对。在

我假设您想在这里将dN与{}配对,而不考虑密钥的数量。注意,字典实际上是无序的(尽管python3.6和up的插入顺序是保留的),所以您可能需要先应用一些排序:

^{pr2}$

之后我们可以将它们与zip(sorted_keys, sorted_keys[1:])配对:>>> sorted_keys = sorted(D)

>>> list(zip(sorted_keys, sorted_keys[1:]))

[('d1', 'd2'), ('d2', 'd3'), ('d3', 'd4')]

使用此序列对行并展平生成的键序列,然后压缩行:sorted_keys = sorted(D)

paired = (k for keys in zip(sorted_keys, sorted_keys[1:]) for k in keys)

df = pd.DataFrame(

(row for k in paired for row in zip(*D[k])),

columns=['Time_sec', 'Temperature', 'Damage']

)

这会产生:Time_sec Temperature Damage

0 a1 a2 a3

1 a1 a2 a3

2 a1 a2 a3

3 b1 b2 b3

4 b1 b2 b3

5 b1 b2 b3

6 b1 b2 b3

7 b1 b2 b3

8 b1 b2 b3

9 c1 c2 c3

10 c1 c2 c3

11 c1 c2 c3

12 c1 c2 c3

13 c1 c2 c3

14 c1 c2 c3

15 d1 d2 d3

16 d1 d2 d3

17 d1 d2 d3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值