我是Python新手,但取得了不错的进展。我从 AlphaVantatge 获取数据来分析各种股票模式。我遇到的问题是数据帧的标题与数据不匹配。我的数据应该是:
日期开盘价高低收盘量
最终看起来像这样:
,1.,开盘价,2.,最高价,3.,最低价,4.,收盘价,5.,成交量, 日期,
IOW,“日期”列标题位于第二行,顶行有空白(请注意第一个逗号之前的空格。)然后它使用标签抓取数字并在数字之间添加逗号和标签。 (即:1、开放......与开放)
我不需要将数字作为标签的一部分。我想知道最好的方法是什么?我已经看过各种命令,例如 strip(),但不确定哪个最好使用以及到底使用什么语法? (就像我说的,Python 新手。我正在获取所需的过程,但并不总是语法。)
提前致谢。
我已经研究了各种可能性,但我正在搜索的所有内容似乎都是关于合并整个列,而我只需要合并标题/名称。
您的数据查询应采用与您的请求正确的格式,并且您不需要执行任何操作。那么,以下是如何获取数据(我选择了来自 alphavantage 的股票价格):
import pandas as pd
import requests
url = 'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&interval=5min&apikey=demo'
r = requests.get(url)
data = r.json()
time_series_data = data['Time Series (5min)']
df = pd.DataFrame(time_series_data).T
df.reset_index(inplace=True)
df.rename(columns={'index': 'timestamp', '1. open': 'Open', '2. high': 'High', '3. low': 'Low', '4. close': 'Close', '5. volume': 'Volume'}, inplace=True)
df['timestamp'] = pd.to_datetime(df['timestamp'])
df.sort_values(by='timestamp', inplace=True)
print(df.head())
这应该给你你所期望的:
timestamp Open High Low Close Volume
99 2024-04-12 10:50:00 184.2000 184.2700 183.9200 184.0700 21733
98 2024-04-12 10:55:00 184.0600 184.2800 183.9870 183.9900 28103
97 2024-04-12 11:00:00 183.9700 184.4800 183.8600 184.4400 26258
96 2024-04-12 11:05:00 184.4300 184.6200 184.3700 184.4400 26268
95 2024-04-12 11:10:00 184.4200 184.6300 184.3700 184.5600 59181