python 字典到具有多列的 pandas 数据框

标签 python pandas dictionary dataframe

我有以下 python 字典:

d= {'data'      : Counter({ 'important' : 2,
                        'very'      : 3}),
    'analytics' : Counter({ 'boring'    : 5,
                        'sleep'     : 3})
    }

我想将其保存为以下格式的 pandas 数据框:

category  | word      | count
  data    | important | 2
  data    | very      | 3
analytics | boring    | 5
analytics | sleep     | 3

我尝试了以下方法,但都没有用

df = pd.DataFrame(d.items()) 

df = pd.DataFrame.from_dict(d, orient='index').reset_index()

df = pd.DataFrame(data)

最佳答案

您可以使用 stack :

df = pd.DataFrame(d).stack().reset_index()
df.columns = ['word','category','count']
print(df)
        word   category  count
0     boring  analytics    5.0
1  important       data    2.0
2      sleep  analytics    3.0
3       very       data    3.0

df = pd.DataFrame.from_dict(d, orient='index').stack().reset_index()
df.columns = ['category','word','count']
print(df)

    category       word  count
0  analytics     boring    5.0
1  analytics      sleep    3.0
2       data  important    2.0
3       data       very    3.0

嵌套列表理解的另一种解决方案:

df = pd.DataFrame([(key,key1,val1) for key,val in d.items() for key1,val1 in val.items()])
df.columns = ['category','word','count']
print(df)
    category       word  count
0  analytics     boring      5
1  analytics      sleep      3
2       data  important      2
3       data       very      3

关于python 字典到具有多列的 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192401/

相关文章:

python - 在python中过滤日期格式

python - 将 xml 文件转换为字典

Python Pandas dataframe : For each month of the year, 如果月份不存在,则将月份最后一天的日期添加到索引中,或者删除重复项

python - 如何创建多对多关系变量并提高代码可用性?

python - 我可以使用与数据框中已有的值匹配的键填充 pd.dataframe 吗?

python - numpy.ufunc大小错误,尝试重新编译。我在OpenBSD6.4下使用python3.6,但是导入pandas失败

python - 通过随机抽取其他列数据创建新列

python - 我收到 RuntimeError : dictionary changed size during iteration. Python

当第一个参数存在但*默认*不存在时的 Python dict.get() 行为

python - OpenERP ver 7 - Security.xml 说明