大伙儿!

我正在try 将Pandas Dataframe(data1)转换为特定的json格式字符串(data2). 我该怎么做?

data1 = pd.DataFrame(
    {
        "country": ["USA", "USA", "USA", "Canada", "Canada", "Canada", "Japan", "Japan", "Germany", "Germany", "Germany", "Germany"],
        "city": ["Boston", "NY", "LA", "Montreal", "Vancouver", "Calgary", "Osaka", "Kyoto","Berlin", "Frankfurt", "Hamburg", "Dresden"]
    }
)

......

data2 = [
                {"country": "USA", "city": ["Boston", "NY", "LA"]},
                {"country": "Canada", "city":  ["Montreal", "Vancouver", "Calgary'"]},
                {"country": "Japan", "city": ["Kyoto", "Osaka"]},
                {"country": "Germany", "city": ["Berlin", "Frankfurt", "Hamburg", "Dresden"]}
        ]

最初,data1来自于SQL.在将其转换为data2后,我将进一步将其传递给JS(通过data2_json = json.dumps(data, indent=4))和其他要在Web应用程序中显示的Python文件.

提前感谢您的帮助.

推荐答案

使用groupby.aggto_dict:

out = (data1.groupby('country', as_index=False, sort=False).agg(list)
            .to_dict('records')
      )

输出:

[{'country': 'USA', 'city': ['Boston', 'NY', 'LA']},
 {'country': 'Canada', 'city': ['Montreal', 'Vancouver', 'Calgary']},
 {'country': 'Japan', 'city': ['Osaka', 'Kyoto']},
 {'country': 'Germany', 'city': ['Berlin', 'Frankfurt', 'Hamburg', 'Dresden']}]

如果是json字符串,则为to_json:

out = (data1.groupby('country', as_index=False, sort=False).agg(list)
            .to_json(orient='records')
      )

输出:

'[{"country":"USA","city":["Boston","NY","LA"]},{"country":"Canada","city":["Montreal","Vancouver","Calgary"]},{"country":"Japan","city":["Osaka","Kyoto"]},{"country":"Germany","city":["Berlin","Frankfurt","Hamburg","Dresden"]}]'

Python相关问答推荐

从流程获取定期更新

如何从同一类的多个元素中抓取数据?

如何从. text中进行pip安装跳过无法访问的库

情节生成的饼图文本超出页面边界

在Python中,什么表达相当于0x1.0p-53?

如何使用Tkinter创建两个高度相同的框架(顶部和底部)?

在编写要Excel的数据透视框架时修复标题行

将行从一个DF添加到另一个DF

如何在Python中使用io.BytesIO写入现有缓冲区?

从webhook中的短代码(而不是电话号码)接收Twilio消息

pandas DataFrame GroupBy.diff函数的意外输出

Pystata:从Python并行运行stata实例

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

try 在树叶 map 上应用覆盖磁贴

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

Python解析整数格式说明符的规则?

如何将多进程池声明为变量并将其导入到另一个Python文件

判断solve_ivp中的事件

matplotlib + python foor loop