Я только начинаю, поэтому я стараюсь сначала создать вещи, которые будут работать, а затем подумать, как мне улучшить код.
Я работал с API CoinGecko для вывода данных, таких как цены. Первая проблема, которую я получил, заключается в том, что запрос возвращает список списков. Каждая запись содержит отметку времени UNIX и значение.
![API GET request returns a dictionary that contains 3 lists of lists](https://i.stack.imgur.com/0tMa5.png)
Сначала я использовал pandas, чтобы поместить эти данные в DataFrame.
data = cg.get_coin_market_chart_by_id('bitcoin', 'USD', 'max')
df = pd.DataFrame(data)
Он возвращал DataFrame с каждой ячейкой, содержащей список с отметкой времени UNIX и значением.
![Dictionary to DataFrame](https://i.stack.imgur.com/vskv0.png)
Очевидно, я не был доволен каждой ячейкой, содержащей UNIX метка времени. Итак, я сделал 3 DataFrames из каждой серии. Я также отформатировал 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)
![Final result](https://i.stack.imgur.com/XL9kj.png)
I Я не парень CS или что-то еще, но я хочу научиться хорошо манипулировать данными. Я позволю вам, мастера StackOverflow, использовать любые неприятные слова при описании моего кода, если это помогает мне совершенствоваться. Спасибо.