You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理pycoingecko获取的比特币数据,转换时间戳并输出指定4列结果

解决方法

你调用接口返回的bdata字典中,prices、market_caps、total_volumes三个键对应的值都是二维列表,每个子列表第一个元素是毫秒级时间戳,第二个是对应的指标数值,不能直接把整个字典转DataFrame处理,修正后的完整代码如下:

import pandas as pd
from pycoingecko import CoinGeckoAPI

c = CoinGeckoAPI()
# 拉取比特币近30天的行情数据
bdata = c.get_coin_market_chart_by_id(id='bitcoin', vs_currency='usd', days=30)

# 分别将三个指标的二维列表转为DataFrame
df_prices = pd.DataFrame(bdata['prices'], columns=['Timestamp', 'Prices'])
df_mcaps = pd.DataFrame(bdata['market_caps'], columns=['Timestamp', 'Market_caps'])
df_volume = pd.DataFrame(bdata['total_volumes'], columns=['Timestamp', 'Total_volume'])

# 按时间戳字段合并三个表,得到所有字段
df = df_prices.merge(df_mcaps, on='Timestamp').merge(df_volume, on='Timestamp')

# 将时间戳转为datetime格式
df['Timestamp'] = pd.to_datetime(df['Timestamp'], unit='ms')

# 按时间升序排序,重置索引(接口默认返回升序,本步骤用于兜底避免异常)
df = df.sort_values('Timestamp', ascending=True).reset_index(drop=True)

# 查看前5行结果
print(df.head())
# 如果需要导出为csv文件可以打开下面注释
# df.to_csv('bitcoin_30d_data.csv', index=False)

运行后输出的结果就包含你需要的4列,时间格式也完成转换,默认按时间从早到晚排序,如果需要从晚到早排序,把sort_values里的ascending=True改成ascending=False即可。

内容的提问来源于stack exchange,提问作者Akhil Antony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:54:03