Python: Dataframe добавляет столбец в правилах индекса - PullRequest
0 голосов
/ 11 октября 2018

Получил фрейм данных, как показано ниже, его индекс [date, assetName]

Как добавить новый столбец с ценой открытия через 10 дней?

Тип данных для столбца индекса даты:

Метка времени ('2007-02-01 00: 00: 00 + 0000', tz = 'UTC')

from datetime import datetime
import pandas as pd
datetime_object = datetime.strptime('Feb 1 2007', '%b %d %Y')

market_df   = pd.DataFrame({'date': [
                                    datetime.strptime('Feb 1 2007', '%b %d %Y')
                                    ,datetime.strptime('Feb 1 2007', '%b %d %Y')
                                    ,datetime.strptime('Feb 1 2007', '%b %d %Y') 
                                    ,datetime.strptime('Feb 11 2007', '%b %d %Y')
                                    ,datetime.strptime('Feb 11 2007', '%b %d %Y')
                                    ,datetime.strptime('Feb 11 2007', '%b %d %Y') 
                                    ],
                            'assetName': ['AAPL', 'GOOGL', 'AMZN','AAPL', 'GOOGL', 'AMZN'],
                            'open': [20, 30.9, 40, 22.3, 35, 45],
                            'close': [20.5, 30.6, 40.5,22.3,35,45],
                           })
market_df = market_df.set_index(['date','assetName'])  

Как получить этот фрейм данных с новым столбцом "price_in_10_days""

date    assetName   open    close   price_in_10_days
2007-02-01  AAPL    20.0    20.5    22.3
2007-02-01  GOOGL   30.9    30.6    35.0
2007-02-01  AMZN    40.0    40.5    45.0
2007-02-11  AAPL    22.3    22.3    NaN
2007-02-11  GOOGL   35.0    35.0    NaN
2007-02-11  AMZN    45.0    45.0    NaN

Data Frame Sample

1 Ответ

0 голосов
/ 11 октября 2018

Я полагаю, вам нужно создать DatetimeIndex на unstack, затем shift на 10 дней и, наконец, stack:

market_df['price_in_10_days']  = market_df['open'].unstack().shift(-1, freq='10D').stack()
print (market_df)

                      open  close  price_in_10_days
date       assetName                               
2007-02-01 AAPL       20.0   20.5              22.3
           GOOGL      30.9   30.6              35.0
           AMZN       40.0   40.5              45.0
2007-02-11 AAPL       22.3   22.3               NaN
           GOOGL      35.0   35.0               NaN
           AMZN       45.0   45.0               NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...