1

我正在尝试合并一个 Excel 表格,该表格是使用从YFinance. 我已经尝试过合并它们,但显然你不能在索引上合并,这是我尝试过的:

import yfinance
import pandas as pd
Dates=pd.read_csv('r/Example.csv)
Dates.columns = ['Start','End']
Stock = yfinance.Ticker('MSFT')
StockData = Stock.history(period='max')
Dates.merge(StockData, left_on='Start', right_on='Date')

它向我抛出了这个错误:

ValueError: You are trying to merge on object and datetime64[ns] columns. If you wish to proceed you should use pd.concat

我试过pd.concat了,这不是我需要的,我需要将 CSV 中的日期与yfinance. yFinance自动将其history数据框的索引设为“日期”索引,我需要将此索引设为一列,或者至少是一个字符串,我不知道该怎么做。

4

1 回答 1

0

你有几个选择:

  1. 要将索引变为列,您可以使用StockData.reset_index()
  2. 您可以使用pandas 文档在索引上合并Dates.merge(StockData, left_on='Start', right_index=True)

您将需要它们是相同的数据类型。为此,最好使用 将日期转换为日期Dates时间Dates['Start'] = pd.to_datetime(Dates['Start'])

于 2020-11-10T01:06:38.087 回答