将字符串转换为日期并删除数据框中一列中的非日期

2024-09-27 19:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,我从一列拆分成两列,就像这样。你知道吗

df_all_files = pd.DataFrame(df_all_files.string.str.split('.',1).tolist(), columns = ['string','the_date'])

给我一堆文件扩展名和日期,都在同一列。我想强制任何看起来可能是日期的东西变成实际日期,并删除任何不是日期的东西。这可行吗?你知道吗

这是我的样品。你知道吗

                                                                     string     the_date

-rw-r--r--   64 30067    10224         616 Nov 01 17:46 ASEJPN_ModelHolidays    20181101
-rw-r--r--   64 30067    10224         616 Dec 03 19:23 ASEJPN_ModelHolidays    20181201
-rw-r--r--   74 30067    10224        4938 Oct 04 03:28 AS1181003               RATE

这就是我想要的样子。你知道吗

                                                                     string     the_date

-rw-r--r--   64 30067    10224         616 Nov 01 17:46 ASEJPN_ModelHolidays    20181101
-rw-r--r--   64 30067    10224         616 Dec 03 19:23 ASEJPN_ModelHolidays    20181201
-rw-r--r--   74 30067    10224        4938 Oct 04 03:28 AS1181003               181003

现在,我经营这一行。你知道吗

df_all_files['the_date'] = df_all_files['the_date'].dt.date

我得到了这个错误。你知道吗

AttributeError: Can only use .dt accessor with datetimelike values

我也试过这个。你知道吗

df_all_files['the_date'] = df_all_files['string'].astype('datetime64[ns]')

一旦它遇到一个非日期,它给我这个错误。你知道吗

ValueError: ('Unknown string format:', 'ach1')

Tags: thedfdatestring错误dtfilesall
1条回答
网友
1楼 · 发布于 2024-09-27 19:21:05

首先使用^{}将序列转换为datetime,使用errors='coerce'确保不可转换的值被NaN替换:

df_all_files['the_date'] = pd.to_datetime(df_all_files['the_date'], errors='coerce').dt.date

但是,我强烈建议您避免转换为dt.date,因为这会将您的序列转换为object数据类型的datetime.date对象序列,而不是高效的pedasdatetime序列。你知道吗

下面是将Pythondatetime.datedatetime.datetime对象与Pandas一起使用所导致的问题的4个示例:

  1. TypeError: Cannot compare type 'Timestamp' with type 'date'
  2. Parse a Pandas column to Datetime
  3. Why my code didn't select data from Pandas dataframe?
  4. Filtering pandas dataframe by day

相关问题 更多 >

    热门问题