python - Iterating over a Pandas grouped dataframe -
i using groupby
in pandas
create json
style data. having trouble iterating on grouped dataframe
doesn't recognize keys
import pandas 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']} index, row in df.iteritems()] print json_data
error:
keyerror: 'group'
desired output:
[{ 'id': 'group a', 'name': 'group a', 'value': 11 }, { 'id': 'group b', 'name': 'group b', 'value': 24.33333 }]
try this: here's link 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"}]'
you can reorder json output way:
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}]'
Comments
Post a Comment