Python Flask return pd dataframe groupby-如何删除用于分组的列?
我是Python新手-我的第一次体验发生在2-3天前-我一直在使用df.groupby方法映射数据,因此非常感谢您的帮助 对于给定的df:Python Flask return pd dataframe groupby-如何删除用于分组的列?,python,json,pandas,flask,pandas-groupby,Python,Json,Pandas,Flask,Pandas Groupby,我是Python新手-我的第一次体验发生在2-3天前-我一直在使用df.groupby方法映射数据,因此非常感谢您的帮助 对于给定的df: id VALUE1 VALUE2 VALUE3 1 1 11 abc 2 1 22 def 3 2 33 ghi 4 2 44 jkl 我想将此数据格式化为可通过烧瓶返回的格
id VALUE1 VALUE2 VALUE3
1 1 11 abc
2 1 22 def
3 2 33 ghi
4 2 44 jkl
我想将此数据格式化为可通过烧瓶返回的格式。为了实现这一点,我首先使用groupby方法,如下所示:
df = df.groupby('VALUE1', group_keys=False, as_index=False)
完成这一点后,我的“df”不能通过Flask返回,因此我采取了另一个步骤,使用
df = df.groupby('VALUE1', group_keys=False, as_index=False).apply(lambda x: x.to_json(orient='records'))
这导致了几乎可以接受的格式:
id, value:
1 [
{ "VALUE1": "1", "VALUE2": "11", "VALUE3": "abc" },
{ "VALUE1": "1", "VALUE2": "22", "VALUE3": "def" },
]
2 [
{ "VALUE1": "2", "VALUE2": "33", "VALUE3": "ghi" },
{ "VALUE1": "2", "VALUE2": "44", "VALUE3": "jkl" },
]
我最终想要实现的格式是:
id, value:
1 1: {
{ "VALUE2": "11", "VALUE3": "abc" },
{ "VALUE2": "22", "VALUE3": "def" },
}
2 2: {
{ "VALUE2": "33", "VALUE3": "ghi" },
{ "VALUE2": "44", "VALUE3": "jkl" },
}
谢谢 试试这个:
导入io
进口大熊猫
从烧瓶导入烧瓶,jsonify
#创建烧瓶应用程序
app=烧瓶(名称)
@附件路线(“/”)
def index():
#你的数据
数据=io.StringIO(
"""
id值1值2值3
11美国广播公司
2 1 22 def
3 2 33 ghi
4244 jkl
"""
)
df=pandas.read_表(数据,sep=“\s+”)
#为输出创建占位符
输出={}
#循环groupby中的所有组
对于组id,df.groupby('VALUE1')中的组:
#将组的dict表示添加到输出中,不包含您不需要的列
输出[group\u id]=group.drop(列=[“VALUE1”,“id”])。到\u dict(orient=“records”)
#以JSON格式返回输出
返回jsonify(输出)
如果名称=“\uuuuu main\uuuuuuuu”:
app.run(debug=True)
输出:
{
"1": [
{
“价值2”:11,
“价值3”:“abc”
},
{
“价值2”:22,
“值3”:“定义”
}
],
"2": [
{
“价值2”:33,
“价值3”:“ghi”
},
{
“价值2”:44,
“值3”:“jkl”
}
]
}
为什么要让事情变得复杂?您是否尝试将数据帧直接传递到html?请看这里的一些想法,因为这是一个要求-我是谁判断。我没有试图将它传递到HTML-这段代码是在一个API中,你搞定了!谢谢Gijs!