gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:51 26 4
gpt4 key购买 nike

我有一个数据框,我将它从一列拆分为两列,如下所示。

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

现在,我正在运行这个 one-liner。

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')

最佳答案

使用pd.to_datetime首先将您的系列转换为 datetime,使用 errors='coerce' 确保不可转换的值被 NaN 替换:

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

但是,我强烈建议您避免转换为 dt.date,因为这会将您的系列转换为 object dtype 系列 datetime.date 对象,而不是高效的 Pandas datetime 系列。

这里有 4 个由 Pandas 使用 Python datetime.datedatetime.datetime 对象引起的问题示例:

  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

关于python - 将字符串转换为日期并删除数据框一列中的非日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54100778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com