【问题标题】:Python convert Dict with multiple keys to DataframePython将具有多个键的Dict转换为Dataframe
【发布时间】:2017-05-18 02:15:29
【问题描述】:

我有一个从网络数据创建的字典。我从一个空的字典开始,比如d = {}。然后,我遍历每个网页并将每个数据页存储在d[i] 中,我从 0 开始,i = 0。然后我有一个带有多个键/索引的字典(我不确定正确的术语是什么)。我可以输入d[0] 看到第一页,d[1] 看到第二页等等。我正在尝试合并这些键/索引中的每一个,以便可以将此 Dict 转换为 Dataframe。字典看起来像这样:

{0:    Age (Days) Number of Items in Queue Number of Items in WIP  \
 3           4                        0                      2
 4           5                        0                      1
 5           6                        0                      2
 6           7                        0                      4
 7           9                        0                      1
 8          12                        0                      2
 9          14                        0                      4
 10         15                        0                      3
 11         17                        0                      1
 12         19                        0                      2
1:    Age (Days) Number of Items in Queue Number of Items in WIP  \
 3           0                        0                      1
 4           1                        0                      8
 5           2                        0                      3
 6           3                        0                      6
 7           4                        0                      1
 8           5                        0                      7
 9           9                        0                      9
 10         10                        0                      4
 11         11                        0                      3
 12         12                        0                      8
 13         13                        0                      2
 14         14                        0                      1
 15         15                        0                      5
 16         16                        0                      6
 17         17                        0                      1
 18         18                        0                      5
 19         19                        0                      7
 20         20                        0                      2}

我不能简单地使用pd.DataFrame(d)。我尝试使用pd.DataFrame.from_dict(list(d.values())),但这并没有给出我期望的输出。我得到与pd.DataFrame.from_dict(d, orient='index') 相同的输出。不需要的输出只是列出每个键/索引,如下所示:

In [102]: pd.DataFrame.from_dict(d, orient='index')
Out[102]:
                                                   0
0     Age (Days) Number of Items in Queue Number ...
1     Age (Days) Number of Items in Queue Number ...
2     Age (Days) Number of Items in Queue Number ...

我希望将 d[1] 中的行添加到 d[0] 并保持相同的列名。

【问题讨论】:

  • 试试这个:df = pd.concat((d[k] for k in d.keys()), ignore_index=True)
  • 那是快速而完美的!谢谢!想要将此作为答案发布,我会标记它?

标签: python python-3.x pandas dictionary dataframe


【解决方案1】:

IIUC 你可以这样concatenate他们:

df = pd.concat(d.values(), ignore_index=True)

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 2021-11-06
    • 2022-01-02
    • 2018-10-14
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 2021-07-16
    相关资源
    最近更新 更多