【问题标题】:Pandas- DateTime ConversionPandas-日期时间转换
【发布时间】:2022-01-05 13:01:17
【问题描述】:

我有一列包含以下格式的数据:05.01.2022。不幸的是,dtype 是对象,我需要将其转换为日期时间。

我尝试了以下方法:

df['date']= pd.to_datetime(df['date'], format='%d.%m.%Y')

输出为:ValueError: time data 'test' does not match format '%d.%m.%Y' (match)

请注意,我没有任何名为“测试”的数据或列。

我也尝试了 astype('datetime') 的解决方案,但仍然无效。我该如何解决这个问题?我检查了类似帖子中的解决方案,但没有奏效。

谢谢,

【问题讨论】:

  • 您的日期时间列中似乎有一个条目“测试”。您可以使用 pd.to_datetime 中设置的errors="coerce" kwarg 进行解析。这将为此类条目提供NaT
  • 嗨,对不起,我找到了,非常感谢。

标签: python pandas datetime


【解决方案1】:

在我看来,您的代码是正确的。

我在以下环境中尝试过:

import pandas as pd
import io

txt = '''date,amount
05.01.2022,133.15
06.01.2022,222.09'''

df = pd.read_csv(io.StringIO(txt))

现在当你运行df.info() 时,你应该得到:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   date    2 non-null      object 
 1   amount  2 non-null      float64
dtypes: float64(1), object(1)
memory usage: 160.0+ bytes

现在你的代码:

df['date'] = pd.to_datetime(df['date'], format='%d.%m.%Y')

(运行没有任何错误)。

df的内容现在是:

        date  amount
0 2022-01-05  133.15
1 2022-01-06  222.09

注意日期格式的变化。这是 Pandas 打印时间部分设置为 0 的日期的方式。

当你再次运行df.info() 时,你应该得到:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype         
---  ------  --------------  -----         
 0   date    2 non-null      datetime64[ns]
 1   amount  2 non-null      float64       
dtypes: datetime64[ns](1), float64(1)
memory usage: 160.0 bytes

注意 date 列的类型现在是 datetime64[ns]

总结一下:

  1. 首先运行我的代码来创建 DataFrame。
  2. 运行df.info() 并检查结果是否与我输入的相符。
  3. 在我的数据上运行您的代码并检查结果。
  4. 按照自己的方式创建 df(使用您的实际数据)。
  5. 运行 df.info()(在您的 DataFrame 上)并查找任何差异。
  6. 检查您的 DataFrame data 列中的所有行是否正确包含 格式化的日期。 特别寻找当你有任何其他字符而不是点的情况 (例如逗号)。 还要在 data 列中查找空条目或前导空格。

您的 DataFrame 可能包含您发布的其他内容。

【讨论】:

    猜你喜欢
    • 2016-01-27
    • 2023-03-17
    • 2019-10-07
    • 2017-08-14
    • 1970-01-01
    • 2016-03-21
    • 2016-07-29
    • 2022-12-21
    相关资源
    最近更新 更多