Я использую Google colab / python для анализа биржевых данных и испытываю проблемы с объединением / назначением правильного индекса

#python #dataframe #pivot #stock

#python #dataframe #сводная #акции

Вопрос:

Вот как выглядят данные: это фрагмент данных

Строки включают:

 Attributes  Adj Close   Close   High    Low Open    Volume
Symbols CVX INTC    CVX INTC    CVX INTC    CVX INTC    CVX INTC    CVX INTC
 

Однако биржевые символы, дата и атрибуты не могут быть легко вызваны как есть. Например, CVX close и CVX low и дата даже не совпадают с одной и той же строкой. Я пытался выполнить поворот, а также индексирование, но пока безуспешно. Я пытаюсь поместить описание столбца в одну строку и данные в качестве индекса, чтобы я мог выполнять анализ.

Сначала я попробовал следующее, чтобы проиндексировать дату, но это не сработало:

 data['Df'] = pd.to_datetime(df['Date'])
 

И безуспешно пытался индексировать данные:

  df_pivot = df.pivot('Date','Symbol','close').reset_index()
 

Ответ №1:

Я не уверен, каков желаемый результат, но я написал код с пониманием того, что я хочу обработать название акции как столбец. Это тот ответ, который вы хотели? wide_to_long

 import pandas as pd
import pandas_datareader.data as web

df_stock = web.DataReader(['CVX', 'INTC'], 'yahoo', '2020-01-02', '2020-01-15')
df_stock.reset_index(inplace=True)
df_stock.columns = [x[0] '_' x[1] for x in df_stock.columns]
df_stock = (pd.wide_to_long(df_stock, ['Adj Close','Close','High','Low','Open','Volume'],
                            i='Date_', j='Stock', sep='_', suffix='\w ')
df_stock.head()
        Adj Close   Close   High    Low     Open    Volume
Date_   Stock                       
2020-01-02  CVX     114.918457  121.430000  121.629997  120.769997  120.809998  5205000
2020-01-03  CVX     114.520988  121.010002  122.720001  120.739998  121.779999  6360900
2020-01-06  CVX     114.132973  120.599998  121.669998  120.330002  121.239998  9953000
2020-01-07  CVX     112.675552  119.059998  119.730003  117.769997  119.019997  7856900
2020-01-08  CVX     111.388489  117.699997  119.089996  117.650002  118.550003  7295900