首页 > 解决方案 > 为日期索引创建列

问题描述

为 noob python 问题道歉。

我正在运行以下代码:

######import the relevant packages######

#used for urls parsing
import urllib.parse

#used for making http calls on the internet
import requests

#allows for loading and unloading json data
import json 

#used for date and time functions
import datetime 
import time

#used for data processing 
import numpy as np
import pandas as pd

#expand column width
pd.set_option("display.max_columns", 1000)

#data time parameters
date = datetime.date
today = datetime.date.today()
end_date_delta = datetime.timedelta(days=1)
start_date_delta = datetime.timedelta(days=7)
start_date = today - start_date_delta
end_date = today - end_date_delta

#test end point
url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=AAPL&apikey=demo"

#initial json response
response = requests.get(url)

#data returned by api in string format
json = json.loads(response.text) 

#convert json to dataframe
data = pd.DataFrame.from_dict(json['Time Series (Daily)'], orient= 'index').sort_index(axis=1)
data.rename(columns={'1. open': 'open', '2. high': 'high', '3. low': 'low', '4. close': 'close', '5. volume': 'volume'}, inplace = True)

#extract close price and volume
data = data[['close']]

print(data)

输出如下所示:

                   close
    2020-06-12  338.8000
    2020-06-11  335.9000
    2020-06-10  352.8400
    2020-06-09  343.9900
    2020-06-08  333.4600

但我想展平文件并添加一个“日期”列,以便进行日期过滤。我希望它看起来像这样:

    date          close
2020-06-12  338.8000
2020-06-11  335.9000
2020-06-10  352.8400
2020-06-09  343.9900
2020-06-08  333.4600

我该如何解决?任何帮助,将不胜感激。谢谢你。

标签: pythonpython-3.xpandasnumpydatetime

解决方案


由于日期是index,所以你可能想做reset_index

data = data.rename_axis('date').reset_index()

推荐阅读