我有一个数据框,我从一列分成两列,就像这样。
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')
使用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
dtypedatetime.date
对象系列,而不是高效的Pandas datetime
系列。
这里是4个示例,这些示例是将Pythondatetime.date
或datetime.datetime
对象与Pandas一起使用引起的:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句