我在if ( ! wp_next_scheduled( 'prefixhourlyevent' ) ) {
中使用groupby
来创建一些pandas
样式数据。我无法迭代分组的json
,因为它无法识别我的密钥
dataframe
错误:
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'
答案 0 :(得分:1)
作为documented,iteritems
遍历列(特别是名称/列对)。看起来你想要iterrows
。 (您仍然需要将其更改为访问['Value', 'mean']
而不是['mean']
,因为您创建了一个包含多索引列的DataFrame。)
答案 1 :(得分:1)
试试这个:这是指向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}]'