【发布时间】:2019-05-31 04:16:10
【问题描述】:
我有一本字典如下:
{'header_1': ['body_1', 'body_3', 'body_2'],
'header_2': ['body_6', 'body_4', 'body_5'],
'header_4': ['body_7', 'body_8'],
'header_3': ['body_9'],
'header_9': ['body_10'],
'header_10': []}
我想提出一个这样的数据框:
+----+----------+--------+
| ID | header | body |
+----+----------+--------+
| 1 | header_1 | body_1 |
+----+----------+--------+
| 2 | header_1 | body_3 |
+----+----------+--------+
| 3 | header_1 | body_2 |
+----+----------+--------+
| 4 | header_2 | body_6 |
+----+----------+--------+
| 5 | header_2 | body_4 |
+----+----------+--------+
| 6 | header_2 | body_5 |
+----+----------+--------+
| 7 | header_4 | body_7 |
+----+----------+--------+
空白项(例如上面字典中的键header_10)将收到None 的值。我为df.loc 尝试了多种变体,例如:
for header_name, body_list in all_unique.items():
for body_name in body_list:
metadata.loc[metadata.index[-1]] = [header_name, body_name]
无济于事。当然,Pandas 中必须有一种快速的方法来追加行并自动增加索引?类似于仅使用 Python 代码的 SQL INSERT INTO 语句?
【问题讨论】:
-
如果您只是将字典转换成 pandas 可以事先处理的内容会怎样?
-
你不觉得这样效率低吗?它会引入额外的代码......
-
比在每一步都尝试重新分配整个数据帧效率更低?因为这就是附加到它的作用。
-
为了比较,你有字典,它是一种专门设计用于高效变异的数据结构。更多的代码并不意味着更低的代码效率。
-
@W-B 我会再次发布该答案。这正是我所需要的
标签: python-3.x pandas dictionary