Python 如何从Excel工作表中提取日期?

Python 如何从Excel工作表中提取日期?,python,excel,pandas,Python,Excel,Pandas,我正在尝试使用pandas库从Excel表格中提取日期 data = pd.read_excel (import_file_path) df = pd.DataFrame(data,columns = ['birthday']) 这是可行的,但我真的不知道如何使用数据帧,我只需要一个年龄列表/数组,所以我尝试将其转换为numpy数组: array = df.to_numpy() 这也可以正常工作,但数组的元素如下所示: [datetime.datetime(1983, 6, 4, 0, 0)

我正在尝试使用pandas库从Excel表格中提取日期

data = pd.read_excel (import_file_path)
df = pd.DataFrame(data,columns = ['birthday'])
这是可行的,但我真的不知道如何使用数据帧,我只需要一个年龄列表/数组,所以我尝试将其转换为numpy数组:

array = df.to_numpy()
这也可以正常工作,但数组的元素如下所示:

[datetime.datetime(1983, 6, 4, 0, 0)]
但是我不能使用datetime提供的方法来转换日期

最终获得年龄列表/数组的最佳方法是什么

更新:
假设您的日期列名为
生日
,则如下所示:

df = pd.DataFrame({'Birthday' : pd.date_range(start='01/01/88',end='02/02/95',freq='M')})
df['Today'] = pd.datetime(2019,6,13) # probably better to use the datetime module.
df['Years'] = (df['Today'] - df['Birthday']) / np.timedelta64(1, 'Y')
    print(df.head(5))
    Birthday    Today   Years
0   1988-01-31  2019-06-13  31.365463
1   1988-02-29  2019-06-13  31.286063
2   1988-03-31  2019-06-13  31.201188
3   1988-04-30  2019-06-13  31.119051
4   1988-05-31  2019-06-13  31.034176
然后简单地将col转换为np.array

 a = np.array(df['Years'])
    print(a)
    array([31.36546267, 31.28606337, 31.20118825, 31.11905104, 31.03417592,
       30.95203871, 30.8671636 , 30.78228848, 30.70015127, 30.61527615,
       30.53313894, 30.44826382, 30.36338871, 30.28672731, 30.20185219,
       30.11971498, 30.03483987, 29.95270266, 29.86782754, 29.78295242]

好的,有一行数据不规则,把转换搞砸了。
处理的类型工程罚款现在,谢谢

您有一个datetime对象列表。我会尝试循环遍历它们并与其中的datetime对象进行交互。非常感谢,但是我在执行减法时由于类型不匹配而出错,python声明它们是str和DatetimeIndex@Sterial我想生日不是一个日期栏,试试
df['birth']=pd.to_datetime(df['birth'])
我尝试了,结果出现了以下错误:ValueError:要组装映射,至少需要指定[year,month,day]:[day,month,year]是否丢失?是否可以发布一些示例数据?就十排左右so@Sterial在预报过程中,对延误表示歉意!我刚刚在您的示例上测试了我的代码,它起了作用,我唯一能想到的是在您的df中有一些none-datetime值。使用
df['birth']=pd.to_datetime(df['birth'],errors='concure)
强制那些讨厌的异常值。您应该调查这些行,看看发生了什么。没问题,请确保绿色勾选答案,不要将注释作为答案:)您应该删除此行
 a = np.array(df['Years'])
    print(a)
    array([31.36546267, 31.28606337, 31.20118825, 31.11905104, 31.03417592,
       30.95203871, 30.8671636 , 30.78228848, 30.70015127, 30.61527615,
       30.53313894, 30.44826382, 30.36338871, 30.28672731, 30.20185219,
       30.11971498, 30.03483987, 29.95270266, 29.86782754, 29.78295242]