Pandas 输出到 json

Pandas output to json

我正在尝试将此 DF 导出到我想要的输出中:

import pandas as pd

data = {'V':  ["0","0","0","0","0","0"],
        'A': ["1","0","1","1","1","0"],
        }

df = pd.DataFrame (data, columns = ['V','A'])

期望的输出:

{"0": {"V": 0,
       "A": 1,
      },
 "1": {"V": 0,
       "A": 0,
     },
...
}

将其导出为 json 格式不同。

df= df.to_json(orient="table")
with open('df.json', 'w') as f:
    f.write(df)

df.to_dictorient=index 一起使用:

In [1672]: x = df.to_dict('index')

In [1672]: x
Out[1672]: 
{0: {'V': '0', 'A': '1'},
 1: {'V': '0', 'A': '0'},
 2: {'V': '0', 'A': '1'},
 3: {'V': '0', 'A': '1'},
 4: {'V': '0', 'A': '1'},
 5: {'V': '0', 'A': '0'}}

对于json输出:

In [1676]: import json

In [1679]: y = json.dumps(x)

In [1681]: y
Out[1681]: '{"0": {"V": "0", "A": "1"}, "1": {"V": "0", "A": "0"}, "2": {"V": "0", "A": "1"}, "3": {"V": "0", "A": "1"}, "4": {"V": "0", "A": "1"}, "5": {"V": "0", "A": "0"}}'

编辑: 要将值转换为 int,请执行以下操作:

In [1672]: x = df.to_dict('index')
In [1708]: x = {k: {kk: int(vv) for kk, vv in v.items()} for k, v in x.items()}

In [1710]: y = json.dumps(y)

In [1711]: y
Out[1711]: '{"0": {"V": 0, "A": 1}, "1": {"V": 0, "A": 0}, "2": {"V": 0, "A": 1}, "3": {"V": 0, "A": 1}, "4": {"V": 0, "A": 1}, "5": {"V": 0, "A": 0}}'