python - 如何将整数类型的列转换为python中的日期时间类型?

标签 python datetime pandas

我在数据框中有一列 ("ADMIT_YEAR") 整数。列中的典型元素如下所示:200110,其中 2001 = 年,10 = 月。我需要将此列转换为日期时间类型。

我使用下面笨拙的方法成功地做到了这一点。有人可以提供一种更有效的方式来编写此代码吗?

Freshman['ADMIT_YEAR'] = Freshman['ADMIT_TERM'].astype(str).str.slice(0,4)
Freshman['ADMIT_MONTH'] = Freshman['ADMIT_TERM'].astype(str).str.slice(4,6)
Freshman['ADMIT_DATE_str'] = Freshman['ADMIT_YEAR']+'/'+Freshman['ADMIT_MONTH']
Freshman['ADMIT_DATE'] = pd.to_datetime(Freshman['ADMIT_DATE_str'], format="%Y/%m")

注意:我相信这个问题没有答案here因为我的日期不是整数天。

最佳答案

只需将 pd.to_datetime 直接应用于列(的字符串转换),无需在此处使用字符串切片:

Freshman['ADMIT_DATE'] = pd.to_datetime(Freshman['ADMIT_DATE'].astype(str), format='%Y%m')

数字之间不需要分隔符:

>>> import pandas as pd
>>> df = pd.DataFrame({'ADMIT_DATE': [200110, 201604]})
>>> df['ADMIT_DATE'] = pd.to_datetime(df['ADMIT_DATE'].astype(str), format='%Y%m')
>>> df
  ADMIT_DATE
0 2001-10-01
1 2016-04-01
>>> df.dtypes
ADMIT_DATE    datetime64[ns]
dtype: object

关于python - 如何将整数类型的列转换为python中的日期时间类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778854/

相关文章:

mysql - sqlalchemy - 在 MySQL 中按月选择记录

python - 如何将箱线图与平均线连接

python - 如何根据另一列中的值检查 pandas df 列值是否存在?

python - 将 Pandas Dataframe 的选择保存到 csv

python - 无法使用 Python Selenium 找到shadow-root(打开)中的元素

python - 使用 Selenium 和 BeautifulSoup 提取 iFrame 内容

mysql - 如何在 Redshift HH :MM:SS 中只保存时间

python - APScheduler 作业重新启动后未运行

python - 如何读取pandas dataframe中mongodb导出的Json

.net - DateTime.ToString 模式甚至可以保留最小的部分