python - 迭代 Pandas 分组数据框

标签 python json python-2.7 pandas

我正在 pandas 中使用 groupby 来创建一些 json 样式数据。我在迭代分组的 dataframe 时遇到问题,因为它无法识别我的 key

import pandas as pd


df = pd.DataFrame(data=[['Group A', 10],
                       ['Group A', 12],
                       ['Group B', 22],
                       ['Group B', 25],
                       ['Group B', 26]],
                  columns = ['Group', 'Value'])

df = df.groupby('Group').agg(['mean', 'count']).reset_index()

json_data = [{'id': row['Group'],
              'name': row['Group'],
              'value': row['mean']} for index, row in df.iteritems()]
print json_data

错误:

KeyError: 'Group'

期望的输出:

[{
    'id': 'Group A',
    'name': 'Group A',
    'value': 11
}, {
    'id': 'Group B',
    'name': 'Group B',
    'value': 24.33333
    }]

最佳答案

试试这个:这里是 DataFrame.to_json() 的链接

df = df.groupby('Group').mean().reset_index().rename(columns = {'Group':"id" })
df['name'] = df['id']
df.to_json(orient="records")

'[{"id":"Group A","Value":11.0,"name":"Group A"},{"id":"Group B","Value":24.3333333333,"name":"Group B"}]'

您可以通过这种方式重新排序 JSON 输出:

df[['id','name', 'Value', ]].to_json(orient="records")

'[{"id":"Group A","name":"Group A","Value":11.0},{"id":"Group B","name":"Group B","Value":24.3333333333}]'

关于python - 迭代 Pandas 分组数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197379/

相关文章:

Python pandas - 按不同年份的每周数据分组 - 重新采样

jquery - 在 C# .NET 3.5 中使用 HTTPHandler 和 jQuery 周日历

javascript - 动态循环 json 数据数组时不显示 ID(标题和值)

python-2.7 - 如何更改 Tkinter GUI 屏幕的 Logo

python - rpy2:导入非标准 R 库的 R 库时无输出

Python-pandas : the truth value of a series is ambiguous

python - 如何使用 scipy.optimize 查找 gumbel 分布的参数

javascript - 使用在两个(或更多)缓冲区 block 之间拆分的大型 JSON 的最佳方法是什么

python - 更改 python 中未捕获异常处理的默认行为

Python:测试整数列表中的整数是否适合2-int元组列表中的两个整数之间