【发布时间】:2020-04-22 19:06:37
【问题描述】:
我才刚刚开始,所以我尝试先构建可行的东西,然后再考虑如何改进代码。
我一直在使用 CoinGecko 的 API 来转储价格等数据。我遇到的第一个问题是查询返回列表列表。每个条目都包含一个 UNIX 时间戳和一个值。
首先,我使用 pandas 将这些数据放入 DataFrame 中。
data = cg.get_coin_market_chart_by_id('bitcoin', 'USD', 'max')
df = pd.DataFrame(data)
它返回一个 DataFrame,其中每个单元格都包含一个带有 UNIX 时间戳和一个值的列表。
显然,我对每个包含 UNIX 时间戳的单元格不满意。所以,我从每个系列中制作了 3 个数据帧。我还将新索引中的 UNIX 时间戳格式化为每个索引中的日期时间。
price = df['prices'].apply(pd.Series)
price.columns = ['date', 'price']
price = price.set_index(['date'])
price.index = pd.to_datetime(price.index, unit = 'ms')
price.columns = ['price']
market_cap = pd.DataFrame(df.market_caps.values.tolist(), index = df.index)
market_cap = market_cap.set_index(0)
market_cap.index = pd.to_datetime(market_cap.index, unit = 'ms')
market_cap.index.names = ['date']
market_cap.columns = ['market_cap']
volume = pd.DataFrame(df.total_volumes.values.tolist(), index = df.index)
volume = volume.set_index(0)
volume.index = pd.to_datetime(volume.index, unit = 'ms')
volume.index.names = ['date']
volume.columns = ['volume']
最后,我连接了所有 3 个。
dfs = [price, market_cap, volume]
conc = pd.concat(dfs, axis = 1, sort = False)
我不是 CS 专家或任何其他人,但我想学习如何很好地操作数据。我让你,StackOverflow 的向导,在描述我的代码时使用任何不愉快的词,只要它有助于我改进。谢谢。
【问题讨论】:
-
欢迎来到 SO。请不要在问题中使用图片链接。尝试在您的问题中包含所有内容。
-
@csymvoul 我很高兴这样做。您能否建议一个好的链接来关注并了解如何执行此操作?我使用的是默认的“上传图片按钮”,在这里我可以看到用户提出了相同的建议:meta.stackexchange.com/questions/75491/…
-
对我之前的评论表示歉意。您应该上传如下所示的图像:[![在此处输入图像描述][1]][1] ..... [1]:url
-
@csymvoul 我相信它们对于上下文是必要的。我刚刚分享了上面相同的链接,并使用那里描述的方法来附加图像。
-
是的,我知道。我刚刚更新了我的评论。只需复制并粘贴我写的内容并放置图片的 URL
标签: python pandas dataframe data-science