我有以下json文件:
{
"data": {
"start_date": "2022-10-01",
"end_date": "2022-10-04",
"cur": "EUR",
"prizes": {
"2022-10-01": {
"coffee": 0.1448939471560284,
"usd": 1
},
"2022-10-02": {
"coffee": 0.14487923291390148,
"usd":1
},
"2022-10-03": {
"coffee": 0.1454857922753868,
"usd": 1
}
}
}
}
我想创建一个看起来像这样的数据帧(所以没有usd
列(:
coffee
2022-10-01 0.144894
2022-10-02 0.144879
2022-10-03 0.145486
这是我尝试过的:
path = r'C:UsersGeoDesktopjson_filescoffee.json'
df = pd.read_json(path)
df = pd.DataFrame(df['data']['prizes']['2022-10-01']['coffee']).T
print(df)
这是我收到的:
raise ValueError("DataFrame constructor not properly called!")
ValueError: DataFrame constructor not properly called!
假设d
为输入变量的一个选项:
df = (pd.DataFrame
.from_dict(d['data']['prizes'], orient='index')
.drop(columns='usd', errors='ignore') # or [['coffee']]
)
输出:
coffee
2022-10-01 0.144894
2022-10-02 0.144879
2022-10-03 0.145486
假设您的json文件作为data
加载到字典中
df = pd.DataFrame(data['data']['prizes']).drop('usd').T
print(df)
coffee
2022-10-01 0.144894
2022-10-02 0.144879
2022-10-03 0.145486
假设json存储在变量json
中
json = {
"data": {
"start_date": "2022-10-01",
"end_date": "2022-10-04",
"cur": "EUR",
"prizes": {
"2022-10-01": {
"coffee": 0.1448939471560284,
"usd": 1
},
"2022-10-02": {
"coffee": 0.14487923291390148,
"usd":1
},
"2022-10-03": {
"coffee": 0.1454857922753868,
"usd": 1
}
}
}
}
以下将完成的工作
df = pd.DataFrame(json['data']['prizes']).T.drop('usd', axis=1)
[Out]:
coffee
2022-10-01 0.144894
2022-10-02 0.144879
2022-10-03 0.145486
dic=json.load(path)
df=pd.DataFrame(dic)
print(type(df.loc['prizes']))
md=pd.DataFrame(df.loc['prizes'][0])
md=md.transpose()
del md['usd']
print(md)