如何在熊猫中格式化日期格式
Posted
技术标签:
【中文标题】如何在熊猫中格式化日期格式【英文标题】:how to format date format in pandas 【发布时间】:2020-10-20 23:37:54 【问题描述】:我使用 python 和 pandas 获取 yahoo 股票市场日期并保存到本地 csv 文件。
DailyPrice = pd.read_csv(file, index_col=0)
print(DailyPrice.tail())
Date
2020-05-27 86.480003 84.370003 86.300003 86.180000 1917600.0
2020-05-28 87.849998 86.059998 86.870003 86.690002 1908700.0
然后我更新日期。
History = pdr.DataReader(ticker, start=Before_yesterday, end=Today, data_source='yahoo')
print(History.tail())
Date
2020-06-29 87.360001 86.110001 86.559998 87.290001 1302500.0 87.290001
2020-06-30 88.379997 87.235001 87.330002 88.269997 236377.0 88.269997
然后我添加日期
DailyPrice = DailyPrice.append(History)
print(DailyPrice.tail())
Date
2020-05-27 86.480003 84.370003 86.300003 86.180000 1917600.0
2020-05-28 87.849998 86.059998 86.870003 86.690002 1908700.0
2020-06-29 00:00:00 87.360001 86.110001 86.559998 87.290001 1302500.0
2020-06-30 00:00:00 88.379997 87.235001 87.330002 88.269997 236377.0
所以,我的问题是: 我怎样才能像 %Y-%m-%d 一样格式化列日期,而没有时间 hh:mm:ss?
【问题讨论】:
从您发布的示例数据来看,您在df['Date']
中似乎有混合数据类型或只有字符串数据类型 - 您可能希望先转换为日期时间; df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
。之后,您应该可以通过df['Date'].dt.date
进行格式化。
【参考方案1】:
我猜这和one是同一个问题
df['Date'] = df['Date'].dt.date
它应该可以工作
【讨论】:
我已经搜索并尝试过,这对我的情况不起作用。【参考方案2】:看起来你有一个DatetimeIndex,你可以尝试使用strftime
DailyPrice.index = DailyPrice.index.strftime('%Y-%m-%d')
【讨论】:
【参考方案3】:我想我找到了问题。
日期不是列名。
DailyPrice.columns.values.tolist()
['High', 'Low', 'Open', 'Close', 'Volume', 'Adj Close']
那么,第一列,日期,它是什么?
日期是索引。
终于,问题解决了。
DailyPrice.index = pd.to_datetime(DailyPrice.index, format = '%Y-%m-%d')
【讨论】:
以上是关于如何在熊猫中格式化日期格式的主要内容,如果未能解决你的问题,请参考以下文章