我正在 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/