从 'yfinance' 下载转换日期格式
Convert date format from a 'yfinance' download
我有一个 yfinance 下载工作正常,但我希望在写入磁盘时日期列采用 YYYY/MM/DD 格式。
日期列是索引,所以我先去掉索引。然后我尝试使用 Pandas' "to_datetime" 和 ".str.replace" 来获取要在 YYYY/MM/DD.
中格式化的列数据
代码如下:
import pandas
import yfinance as yf
StartDate_T = '2021-12-20'
EndDate_T = '2022-05-14'
df = yf.download('CSCO', start=StartDate_T, end=EndDate_T, rounding=True)
df.sort_values(by=['Date'], inplace=True, ascending=False)
df.reset_index(inplace=True) # Make it no longer an Index
df['Date'] = pandas.to_datetime(df['Date'], format="%Y/%m/%d") # Tried this, but it fails
#df['Date'] = df['Date'].str.replace('-', '/') # Tried this also - but error re str
file1 = open('test.txt', 'w')
df.to_csv(file1, index=True)
file1.close()
我该如何解决这个问题?
重置索引后更改日期格式:
df.reset_index(inplace=True)
df['Date'] = df['Date'].dt.strftime('%Y/%m/%d')
如 中所述,由于 datetime
内部存储日期的方式,您无法更改格式并保留日期时间格式。因此,我会在写入文件之前使用上面的行(将列更改为字符串格式),然后将其转换回日期时间,以具有日期时间属性。
df['Date'] = pd.to_datetime(df['Date'])
我有一个 yfinance 下载工作正常,但我希望在写入磁盘时日期列采用 YYYY/MM/DD 格式。
日期列是索引,所以我先去掉索引。然后我尝试使用 Pandas' "to_datetime" 和 ".str.replace" 来获取要在 YYYY/MM/DD.
中格式化的列数据代码如下:
import pandas
import yfinance as yf
StartDate_T = '2021-12-20'
EndDate_T = '2022-05-14'
df = yf.download('CSCO', start=StartDate_T, end=EndDate_T, rounding=True)
df.sort_values(by=['Date'], inplace=True, ascending=False)
df.reset_index(inplace=True) # Make it no longer an Index
df['Date'] = pandas.to_datetime(df['Date'], format="%Y/%m/%d") # Tried this, but it fails
#df['Date'] = df['Date'].str.replace('-', '/') # Tried this also - but error re str
file1 = open('test.txt', 'w')
df.to_csv(file1, index=True)
file1.close()
我该如何解决这个问题?
重置索引后更改日期格式:
df.reset_index(inplace=True)
df['Date'] = df['Date'].dt.strftime('%Y/%m/%d')
如 datetime
内部存储日期的方式,您无法更改格式并保留日期时间格式。因此,我会在写入文件之前使用上面的行(将列更改为字符串格式),然后将其转换回日期时间,以具有日期时间属性。
df['Date'] = pd.to_datetime(df['Date'])