如何将日期索引转换为 pandas 中的字符串列
How to convert a date index to string column in pandas
我正在尝试合并我用从 YFinance
收集的数据制作的 Excel table。我已经尝试过合并它们,但显然你不能在索引上合并,这是我尝试过的:
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
,但这不是我需要的,我需要 link 将我的 CSV 中的日期与 yfinance
中的日期更新。 yFinance
自动将其 history
数据框的索引设为 'Date' 索引,我需要将该索引设为一列,或者至少是一个字符串,我不知道该怎么做。
这里有几个选项:
- 要将索引放入列中,您可以使用
StockData.reset_index()
- 您可以使用
Dates.merge(StockData, left_on='Start', right_index=True)
合并索引
pandas documentation
您需要它们是相同的数据类型。为此,最好使用 Dates['Start'] = pd.to_datetime(Dates['Start'])
.
将 Dates
中的日期转换为日期时间
我正在尝试合并我用从 YFinance
收集的数据制作的 Excel table。我已经尝试过合并它们,但显然你不能在索引上合并,这是我尝试过的:
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
,但这不是我需要的,我需要 link 将我的 CSV 中的日期与 yfinance
中的日期更新。 yFinance
自动将其 history
数据框的索引设为 'Date' 索引,我需要将该索引设为一列,或者至少是一个字符串,我不知道该怎么做。
这里有几个选项:
- 要将索引放入列中,您可以使用
StockData.reset_index()
- 您可以使用
Dates.merge(StockData, left_on='Start', right_index=True)
合并索引 pandas documentation
您需要它们是相同的数据类型。为此,最好使用 Dates['Start'] = pd.to_datetime(Dates['Start'])
.
Dates
中的日期转换为日期时间