Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask return pd dataframe groupby-如何删除用于分组的列?_Python_Json_Pandas_Flask_Pandas Groupby - Fatal编程技术网

Python Flask return pd dataframe groupby-如何删除用于分组的列?

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 我想将此数据格式化为可通过烧瓶返回的格

我是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
我想将此数据格式化为可通过烧瓶返回的格式。为了实现这一点,我首先使用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!