python - Pandas 在字典列表中分组

标签 python python-3.x pandas pandas-groupby

我有如下数据,我正在尝试将数据分组为日期和时间。

    [
        {
            "avg": 52,
            "hour": 9,
            "dayname": "Friday"
        },
        {
            "avg": 1,
            "hour": 10,
            "dayname": "Friday"
        },
        {
            "avg": 12,
            "hour": 11,
            "dayname": "Friday"
        },
        {
            "avg": 3,
            "hour": 12,
            "dayname": "Friday"
        },
        {
            "avg": 12,
            "hour": 09,
            "dayname": "Saturday"
        },
        {
            "avg": 30,
            "hour": 10,
            "dayname": "Saturday"
        },
        {
            "avg": 66,
            "hour": 11,
            "dayname": "Saturday"
        },
        {
            "avg": 45,
            "hour": 12,
            "dayname": "Saturday"
        }
]

我想要最终的 OP:

hour Friday  Saturday
9     52       12
10     1       30
11    12       16
12     3       45

这是我尝试过的代码:

 cur = mysql.connection.cursor()
    sql = "select avg(value) avg, hour, dayname from table;"
    cur.execute(sql)
    row_headers = [x[0] for x in cur.description] #this will extract row headers
    rv = cur.fetchall()
    json_result = []
    for result in rv:
        json_result.append(dict(zip(row_headers, result)))
#    resultfromdb= json.dumps(json_result)
finalresult = #how to get the expected op

 return finalresult

从那里如何使用 pandas 进行分组并获得最终结果?

最佳答案

您可以将 DataFrame 构造函数与 groupby 一起使用,聚合 sum 并按 unstack reshape :

df = (pd.DataFrame(lst)
        .groupby(['hour','dayname'])['avg']
        .sum()
        .unstack(fill_value=0)
        .rename_axis(None, 1)
        .reset_index())
print (df)
   hour  Friday  Saturday
0     9      52        12
1    10       1        30
2    11      12        66
3    12       3        45

关于python - Pandas 在字典列表中分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50040989/

相关文章:

python - 如何将保存为 RData 的数据框从 R 导入到 pandas?

python - Django:匡威 `__endswith`

python - 如何将一个pandas分成多个groupby?

python - ujson 无法编码 numpy 数组

python - Ubuntu 上的 WHOIS 命令只返回响应代码?

python - 如何读取多个缺少标题和不需要的列的 .txt 文件

python - 如何遍历各种训练和测试拆分

python - pandas 数据框 reshape /透视

python - PyMySQL 将值插入表时出错。 - Python

python - 通过读取 csv 文件列表在 pandas 中动态创建数据框