我正在使用django-restframework,pandas,django-pandas制作api,我得到以下输出
这是单个用户的数据,每个标签代表一个列名,但我希望输出格式如下
任何人都可以帮助以所需的格式获取数据
我的代码是
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)
答案 0 :(得分:3)
这种情况正在发生,因为a
是pandas.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