将元组字典拆分为熊猫数据框

Posted

技术标签:

【中文标题】将元组字典拆分为熊猫数据框【英文标题】:Splitting a Dictionary of tuples into a pandas dataframe 【发布时间】:2017-11-27 07:28:06 【问题描述】:

我用这段代码创建了一个字典:

    dat[r["author_name"]] = (r["num_deletions"], r["num_insertions"], 
r["num_lines_changed"], r["num_files_changed"], r["author_date"])

然后我想用这些字典创建一个带有列的熊猫

author_name | num_deletions | num_insertions | num_lines_changed |num_files changed | author_date

我试过这个:

df = pd.DataFrame(list(dat.iteritems()),
                      columns=['author_name',"num_deletions", "num_insertions", "num_lines_changed", 
                              "num_files_changed",  "author_date"])

但它不起作用,因为它将字典的键和元组读取为仅两列而不是六列。那么我怎样才能把元组中的五个条目中的每一个都分成自己的列

【问题讨论】:

【参考方案1】:

您需要在同一嵌套级别的键和值:

df = pd.DataFrame([(key,)+val for key, val in dat.items()], 
                  columns=["author_name", "num_deletions",
                           "num_insertions", "num_lines_changed", 
                           "num_files_changed",  "author_date"])

你也可以使用

df = pd.DataFrame.from_dict(dat, orient='index').reset_index()
df.columns = ["author_name", "num_deletions",
              "num_insertions", "num_lines_changed", 
              "num_files_changed",  "author_date"]

如果您有大约 10,000 行或更多行,这似乎会更快一些。

【讨论】:

【参考方案2】:

这应该可行。

import pandas as pd

    df = pd.DataFrame(columns=['author_name', 'num_deletions', 'num_insertions', 'num_lines_changed',
                               'num_files_changed','author_date'])

【讨论】:

以上是关于将元组字典拆分为熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

如何将包含元组列表的字典中的字典转换为熊猫数据框

从以元组为键的字典中获取熊猫数据框

拆分两个元素的元组并添加到熊猫数据框[重复]

将命名元组嵌套字典到熊猫数据框

解压熊猫数据框字典 (1,1)

字典中的字典到熊猫数据框