#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