如何在 python 中仅修改 csv 文件的标题行?

问题描述 投票:0回答:1

我是Python新手,但取得了不错的进展。我从 AlphaVantatge 获取数据来分析各种股票模式。我遇到的问题是数据帧的标题与数据不匹配。我的数据应该是:

日期开盘价高低收盘量

最终看起来像这样:

,1.,开盘价,2.,最高价,3.,最低价,4.,收盘价,5.,成交量, 日期,

IOW,“日期”列标题位于第二行,顶行有空白(请注意第一个逗号之前的空格。)然后它使用标签抓取数字并在数字之间添加逗号和标签。 (即:1、开放......与开放)

我不需要将数字作为标签的一部分。我想知道最好的方法是什么?我已经看过各种命令,例如 strip(),但不确定哪个最好使用以及到底使用什么语法? (就像我说的,Python 新手。我正在获取所需的过程,但并不总是语法。)

提前致谢。

我已经研究了各种可能性,但我正在搜索的所有内容似乎都是关于合并整个列,而我只需要合并标题/名称。

dataframe header strip
1个回答
0
投票

您的数据查询应采用与您的请求正确的格式,并且您不需要执行任何操作。那么,以下是如何获取数据(我选择了来自 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
© www.soinside.com 2019 - 2024. All rights reserved.