【发布时间】:2021-09-27 21:23:12
【问题描述】:
这是我的 df:
| text | date | channel | sentiment | product | segment | |
|---|---|---|---|---|---|---|
| 0 | I like the new layout | 2021-08-30T18:15:22Z | Snowflake | predict | Skills | EMEA |
我需要将其转换为与以下内容匹配的 JSON 输出:
[
{
"text": "I like the new layout",
"date": "2021-08-30T18:15:22Z",
"channel": "Snowflake",
"sentiment": "predict",
"fields": [
{
"field": "product",
"value": "Skills"
},
{
"field": "segment",
"value": "EMEA"
}
]
}
]
我无法将列的键映射到第一个字典中的值,并将列和行映射到最终字典中的新键。我已经尝试了使用 df.groupby 和 .apply() 的各种选项,但我做不到。
我尝试过的示例:
df.groupby(['text', 'date','channel','sentiment','product','segment']).apply(
lambda r: r[['27cf2f]].to_dict(orient='records')).unstack('text').apply(lambda s: [
{s.index.name: idx, 'fields': value}
for idx, value in s.items()]
).to_json(orient='records')
感谢所有帮助!
【问题讨论】:
-
我相信您给定的 df 缺少某些列。此外,您可能希望在表格之前添加一行,否则无法正确显示。
-
@Cookie df 是正确的。感谢您对降价的反馈。