python - 将json dict转换为pandas df中的行

标签 python json pandas dictionary

我已经从 url 中提取了 JSON 数据。结果是一本字典。我如何转换这个字典,使每个键都是一列,时间戳是每行的索引 - 每次调用 url 时,dict values 对应于行条目?

数据如下:

with urllib.request.urlopen('https://api.blockchain.info/stats') as url:
    block_data = json.loads(url.read().decode())

# Convert to Pandas
block_df = pd.DataFrame(block_data)

我试过:

block_df = pd.DataFrame(block_data)
block_df = pd.DataFrame(block_data, index = 'timestamp')
block_df = pd.DataFrame.from_dict(block_data)
block_df = pd.DataFrame.from_dict(block_data, orient = 'columns')

但是所有的尝试都会给出不同的错误:

ValueError: If using all scalar values, you must pass an index

TypeError: Index(...) must be called with a collection of some kind, 'timestamp' was passed

最佳答案

用列表包装block_data

pd.DataFrame([block_data]).set_index('timestamp')

               blocks_size    difficulty  estimated_btc_sent  estimated_transaction_volume_usd     hash_rate  market_price_usd  miners_revenue_btc  miners_revenue_usd  minutes_between_blocks  n_blocks_mined  n_blocks_total   n_btc_mined    n_tx  nextretarget   total_btc_sent  total_fees_btc           totalbc  trade_volume_btc  trade_volume_usd
timestamp                                                                                                                                                                                                                                                                                                                                                
1504121943000    167692649  888171856257      24674767461479                      1.130867e+09  7.505715e+09           4583.09                2540         11645247.85                    7.92             170          482689  212500000000  281222        483839  174598204968248     41591624963  1653361250000000          43508.93      1.994054e+08

datetime索引。

df = pd.DataFrame([block_data]).set_index('timestamp')
df.index = pd.to_datetime(df.index, unit='ms')
df

                     blocks_size    difficulty  estimated_btc_sent  estimated_transaction_volume_usd     hash_rate  market_price_usd  miners_revenue_btc  miners_revenue_usd  minutes_between_blocks  n_blocks_mined  n_blocks_total   n_btc_mined    n_tx  nextretarget   total_btc_sent  total_fees_btc           totalbc  trade_volume_btc  trade_volume_usd
timestamp                                                                                                                                                                                                                                                                                                                                                      
2017-08-30 19:39:03    167692649  888171856257      24674767461479                      1.130867e+09  7.505715e+09           4583.09                2540         11645247.85                    7.92             170          482689  212500000000  281222        483839  174598204968248     41591624963  1653361250000000          43508.93      1.994054e+08

关于python - 将json dict转换为pandas df中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45968517/

相关文章:

python - 如何关闭 Tkinter 窗口

ajax调用中的php json响应

python - Sqlalchemy 对 dict 列表的查询

python - 如何按字符串列表过滤 Pandas 列?

python - key 错误 : column not found. ..但它就在那里

python - 在没有验证集和图像归一化的情况下训练 Keras 模型

python - 在 Python 代码中放置 PDB 断点的更简单方法?

python - 是否可以从describe_instances()输出创建EC2实例?

java - Retrofit2 处理包含两个模型数据的 JSON 响应

python - 捕获 Pandas Dataframe 中的日期时间对象