![](/img/trans.png)
[英]How to convert Pandas Dataframe columns of String type to a SET in JSON
[英]How to convert a JSON string with multiple columns and an index to a Pandas dataframe?
我需要将具有 2 列和索引的 JSON 字符串转换为 pandas dataframe 但我遇到了一个错误,我找不到解决方案。
我尝试使用不同的方向orient='columns
和orient='index
对 JSON 进行编码,我还对 JSON 字符串进行了规范化并指定了列名,但仍然存在错误。 看起来有点棘手,我该怎么做?
这是我使用的字符串:
> type(data)
<class 'str'>
> print(data)
{
"2020-04-02T00:00:00.000Z": {
"A": 133.25,
"B": 0.000155642
},
"2020-04-03T00:00:00.000Z": {
"A": 136.45,
"B": 0.0001498913
},
"2020-04-04T00:00:00.000Z": {
"A": 141.55,
"B": 0.0001471562
}
}
df = pd.DataFrame.from_dict(data)
df = pd.DataFrame.from_dict(json_normalize(data), orient='index', columns=['A', 'B'])
Python 抛出一个错误,说AttributeError: 'str' object has no attribute 'values'
。
我想要的是这样的 dataframe:
A B
2020-04-02 00:00:00+00:00 133.25 0.000156
2020-04-03 00:00:00+00:00 136.45 0.000150
2020-04-04 00:00:00+00:00 141.55 0.000147
谢谢,
您可以使用pandas.read_json
。 从文档中,您可以指定orient
= index
,它是 dict 中预期 JSON 字符串格式的指示,例如{index -> {column -> value}}
>>> import pandas as pd
>>> data = """
... {
... "2020-04-02T00:00:00.000Z": {
... "A": 133.25,
... "B": 0.000155642
... },
... "2020-04-03T00:00:00.000Z": {
... "A": 136.45,
... "B": 0.0001498913
... },
... "2020-04-04T00:00:00.000Z": {
... "A": 141.55,
... "B": 0.0001471562
... }
... }"""
>>>
>>> df = pd.read_json(data, orient='index')
>>> df
A B
2020-04-02 00:00:00+00:00 133.25 0.000156
2020-04-03 00:00:00+00:00 136.45 0.000150
2020-04-04 00:00:00+00:00 141.55 0.000147
您可以像这样使用 T :
df = pd.DataFrame.from_dict(data).T
结果是这样的:
A B
2020-04-02T00:00:00.000Z 133.25 0.000156
2020-04-03T00:00:00.000Z 136.45 0.000150
2020-04-04T00:00:00.000Z 141.55 0.000147
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.