【Python】【pandas】DataFrame将包含日期值的列转换为日期时间格式或者日期格式

上代码:

import pandas as pd

# 假设有一个DataFrame df,包含一个名为 'Date' 的列
df = pd.DataFrame({'Date': ['2023-06-01', '2023-06-02', '2023-06-03', 'Invalid Date']})

# 将 'Date' 列转换为日期格式,忽略非日期格式的值
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
df.loc[pd.isnull(df['Date']), 'Date'] = None

# 使用 .dt 访问器操作日期时间列
df['Date'] = df['Date'].dt.date

# 打印修改后的DataFrame
print(df)

输出结果:

         Date
0  2023-06-01
1  2023-06-02
2  2023-06-03
3        None

当执行上面的代码时,将执行以下步骤:

  1. 导入pandas库,以便使用其中的函数和方法。
  2. 创建一个名为 df 的DataFrame,其中包含一个名为 'Date' 的列。该列包含了不同的日期值,包括一个无效的日期值 'Invalid Date'
  3. 使用pd.to_datetime函数将 'Date' 列转换为日期时间格式。errors='coerce'参数告诉函数在无法转换为日期的情况下将其设置为缺失值(NaT)。
  4. 使用pd.isnull函数检查哪些值是缺失值(NaT),并使用loc访问器在DataFrame中选择这些缺失值的位置。
  5. 将这些缺失值设置为None,以在DataFrame中表示缺失的日期值。
  6. 使用.dt访问器操作日期时间列,使用.date属性将日期时间对象转换为日期对象。
  7. 打印修改后的DataFrame。

在上述代码中,我们使用pd.to_datetime将包含日期值的列转换为日期时间格式。在转换过程中,将无法解析为日期的值设置为缺失值(NaT)。然后,我们使用pd.isnull检查哪些值是缺失值,并将其设置为None。最后,使用.dt访问器操作日期时间列,并使用.date属性将日期时间对象转换为日期对象。

这样,我们就可以将DataFrame的列转换为日期格式,并忽略非日期格式的值。

你可能感兴趣的:(python,pandas,python,pandas,开发语言)