【问题标题】:How to convert dataframe to json如何将数据帧转换为json
【发布时间】:2017-05-14 21:04:05
【问题描述】:

如何将dataframe转成json结构?

df = 

name    size    imports
AAA     111     [222,333]
BBB     111     [333,444]

结果应该是:

json = 
[
{"name":"AAA","size":111,"imports":["data.222","data.333"]},
{"name":"BBB","size":111,"imports":["data.33","data.444"]}
]

如果我使用此命令df.reset_index().to_json(orient='records'),则无法自定义data.333 之类的值(即添加data 并将值放入".."

【问题讨论】:

  • type(df.imports.iloc[0]) 是什么?
  • @jezrael:我是[
  • 我认为 print (type(df.imports.iloc[0])) 我认为是 str 或 list。
  • @jezrael:我是<type 'list'>

标签: python json list pandas list-comprehension


【解决方案1】:

您可以使用applylist comprehension 将文本data. 添加到list 的每个值:

df = pd.DataFrame({'name':['AAA','BBB'],
                   'sizeB':[111,111],
                   'imports':[[222,333],[333,444]]})

df.imports = df.imports.apply(lambda x: ['data.'+ str(y) for y in x])
print (df)
                imports name  sizeB
0  [data.222, data.333]  AAA    111
1  [data.333, data.444]  BBB    111

print (df.to_json(orient='records'))
[{"imports":["data.222","data.333"],"name":"AAA","sizeB":111},
 {"imports":["data.333","data.444"],"name":"BBB","sizeB":111}]

【讨论】:

  • 它给了我 "imports":[data.222,data.333] 没有".."
  • 我有点困惑 - .. 不在所需的输出中。我想我不明白。你能解释更多吗?
  • 我的意思是我需要得到"imports":["data.222","data.333"], but not "imports":[data.222,data.333]。对不起,如果我没有解释清楚。
猜你喜欢
  • 2020-07-31
  • 2020-09-06
  • 1970-01-01
  • 2023-03-31
  • 2019-08-31
  • 2016-11-15
  • 2020-10-30
  • 1970-01-01
  • 2021-12-21
相关资源
最近更新 更多