如何从以下数据字典中对时间戳进行排序?
Posted
技术标签:
【中文标题】如何从以下数据字典中对时间戳进行排序?【英文标题】:How can I sort timestamp from following data dictionary? 【发布时间】:2022-01-07 12:18:17 【问题描述】:代码:
import pandas as pd
from pycoingecko import CoinGeckoAPI
c=CoinGeckoAPI()
bdata=c.get_coin_market_chart_by_id(id='bitcoin',vs_currency='usd',days=30)
data_=pd.DataFrame(bdata)
print(data_)
data=pd.to_datetime(data_[prices],unit='ms')
print(data)
输出:
要求: 但我需要输出其中 4 列: 时间戳、价格、Market_caps、Total_volume 我想将时间戳格式更改为 to_datetime 在上面的代码中,我只是对 pycoingecko 中的比特币数据进行排序
示例:
【问题讨论】:
这能回答你的问题吗? How to parse out lists returned by an API into a pandas dataframe 【参考方案1】:您可以提取时间戳列并将其转换为日期,如下所示,只需对您的代码进行最少的更改,您可以通过将新列合并到您的数组来跟进:
import pandas as pd
from pycoingecko import CoinGeckoAPI
c=CoinGeckoAPI()
bdata=c.get_coin_market_chart_by_id(id='bitcoin',vs_currency='usd',days=30)
data_=pd.DataFrame(bdata)
print(data_)
#data=pd.to_datetime(data_["prices"],unit='ms')
df = pd.DataFrame([pd.Series(x) for x in data_["prices"]])
df.columns = ["timestamp","data"]
df=pd.to_datetime(df["timestamp"],unit='ms')
print(df)
【讨论】:
【参考方案2】:你可以把它转换成这样的数据框格式:
import pandas as pd
from pycoingecko import CoinGeckoAPI
c=CoinGeckoAPI()
bdata=c.get_coin_market_chart_by_id(id='bitcoin',vs_currency='usd',days=30)
prices = pd.DataFrame(bdata['prices'], columns=['TimeStamp', 'Price']).set_index('TimeStamp')
market_caps = pd.DataFrame(bdata['market_caps'], columns=['TimeStamp', 'Market Cap']).set_index('TimeStamp')
total_volumes = pd.DataFrame(bdata['total_volumes'], columns=['TimeStamp', 'Total Volumes']).set_index('TimeStamp')
# combine the separate dataframes
df_market = pd.concat([prices, market_caps, total_volumes], axis=1)
# convert the index to a datetime dtype
df_market.index = pd.to_datetime(df_market.index, unit='ms')
代码改编自this answer。
【讨论】:
以上是关于如何从以下数据字典中对时间戳进行排序?的主要内容,如果未能解决你的问题,请参考以下文章