我有一个json文件,看起来像图中所示。 如何导入和打印熊猫中的所有数量和费率? 如何单独打印所有买卖数量的总和? 如何打印所有数值的总和大于x的值。例如:SUM(Qty> 5)
在原始格式中,数据就像这样
{"success":true,"message":"","result":{"buy":[{"Quantity":199538.30948659,"Rate":0.00000970},{"Quantity":62142.31715449,"Rate":0.00000968},{"Quantity":233476.03486058,"Rate":0.00000967},{"Quantity":75613.30879931,"Rate":0.00000966},{"Quantity":3109.14961399,"Rate":0.00000965},{"Quantity":66.22406639,"Rate":0.00000964},{"Quantity":401.06420081,"Rate":0.00000963},{"Quantity":186.93339628,"Rate":0.00000961},{"Quantity":122731.01165366,"Rate":0.00000960},{"Quantity":7718.27750144,"Rate":0.00000959},{"Quantity":802.00000000,"Rate":0.00000958},{"Quantity":2050.72163419,"Rate":0.00000956},{"Quantity":1000.00000000,"Rate":0.00000955}
答案 0 :(得分:1)
您可以使用pandas.read_json()
命令执行此操作。只需将你的json文件传递给函数,pandas就会为你创建一个数据帧。
这里是指向文档的链接,您可以在其中传递orient='records'
之类的额外参数等,以告诉大熊猫使用什么作为数据帧列以及使用什么作为行数据等。
这里是链接:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html
一旦进入数据框,您就可以运行各种命令来计算买入和卖出的数量总和。在我认为运行数学计算时,将数据放在数据框中可以使生活更轻松。
答案 1 :(得分:1)
使用json_normalize
并传递元路径:
import json
import pandas as pd
with open('data.json') as f:
data = json.load(f)
buy_df = pd.io.json.json_normalize(data['result'],'buy')
#Similarly for sell data if you have a separte entity named `sell`.
sell_df = pd.io.json.json_normalize(data['result'],'sell')
输出:
Quantity Rate 0 199538.309487 0.00001 1 62142.317154 0.00001 2 233476.034861 0.00001 3 75613.308799 0.00001 4 3109.149614 0.00001
总结你可以做到
buy_df['Quantity'].sum()
从现在起,选择和索引数据请参考 - Indexing and Selecting Data - Pandas
答案 2 :(得分:1)
import pandas as pd
#change 'buy' for other results
data = pd.DataFrame(pd.read_json('file.json')['result']['buy'])
#for filtering
print(data.query('Quantity > 5').query('Rate > 0.00000966').sum())