【问题标题】: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 进行格式化。

标签: python pandas datetime format


【解决方案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')
    

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 2019-02-24
      • 2018-09-01
      • 1970-01-01
      • 2019-11-28
      • 2020-11-16
      • 2019-07-19
      • 2022-06-13
      相关资源
      最近更新 更多