【问题标题】:How to specify date standard when using .apply(pd.Timestamp). Python confusing date and month in 11/12/2018使用 .apply(pd.Timestamp) 时如何指定日期标准。 Python 在 2018 年 11 月 12 日混淆日期和月份
【发布时间】:2019-06-25 01:56:08
【问题描述】:

我有两个数据框,它们都有一个“日期时间”列,第一个数据框的数据为11/12/2018 15:34:04,第二个数据框的数据为2018-12-11 15:35:45

当我运行 df['Date Time'].apply(pd.Timestamp) 我得到以下信息:

第一个数据帧变成2018-12-11 15:35:45,这是正确的。 但是第二个数据框变成了2018-11-12 15:34:04,这是不正确的(月份和日期的顺序错误)。

我查看了文档,但找不到指定月份/日期顺序的方法。有没有人遇到过这个?

【问题讨论】:

  • 当你说你有一个“日期时间”列时——你的意思是这些列中的dtypedatetime
  • 不,该列只是命名为“日期时间”我将其转换为 dtype = datetime 列,但在转换过程中它混淆了月份和日期。

标签: python python-3.x pandas dataframe timestamp


【解决方案1】:

也许更好的方法是使用pd.to_datetime。对于您的第二个数据框,代码将是:

pd.to_datetime(df["Date Time"], format="%Y-%m-%d %H:%M:%S")   

证明:

准备好你的案例:

df = pd.DataFrame({"Date Time":["2018-12-11 15:35:45"]})   
df

Date Time
0   2018-12-11 15:35:45

转换:

pd.to_datetime(df["Date Time"], format="%Y-%m-%d %H:%M:%S")
0   2018-12-11 15:35:45
Name: Date Time, dtype: datetime64[ns]

PS

如果您坚持使用apply,代码将是:

df["Date Time"].apply(lambda x: pd.to_datetime(x, format="%Y-%m-%d %H:%M:%S"))
0   2018-12-11 15:35:45
Name: Date Time, dtype: datetime64[ns]

但我在实践中从未见过这种情况。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
相关资源
最近更新 更多