与熊猫的Django-restframework

时间:2017-03-29 11:35:32

标签: django pandas django-rest-framework

我正在使用django-restframework,pandas,django-pandas制作api,我得到以下输出enter image description here

这是单个用户的数据,每个标签代表一个列名,但我希望输出格式如下

enter image description here

任何人都可以帮助以所需的格式获取数据

我的代码是

views.py

@api_view(['GET'])
def my_view(request,id):
    qs = Health.objects.filter(id = id)
    df = read_frame(qs)
    df['x-Mean'] = abs(df['Age'] - df['Age'].mean())
    df['1.96*std'] = 1.96*df['Age'].std()
    df['Outlier'] = abs(df['Age'] - df['Age'].mean()) > 1.96*df['Age'].std()
    df['bmi'] = df['Weight']/(df['Height']/100)**2
    a = df.fillna(0)
    return Response(a)

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为apandas.DataFrame并且它对应于表,因此在序列化期间它会尝试表示每个表列的所有数据。 DataFrame不知道每列只有一个值。 必须手动提取值:

a = {column: values[0] for column, values in df.fillna(0).to_dict().items(orient='list')}
return Response(a)

有关详细信息,请查看http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_dict.html