Python 查找数据框中具有日期模式的所有列
我试图确定数据框中的列是否有日期。在上下文中,我的真实数据集有数百列,我无法遍历并手动识别列是否为日期。最终,我需要以类似的格式获取日期,以便比较不同版本的数据集,并查看发生了什么变化Python 查找数据框中具有日期模式的所有列,python,regex,date,Python,Regex,Date,我试图确定数据框中的列是否有日期。在上下文中,我的真实数据集有数百列,我无法遍历并手动识别列是否为日期。最终,我需要以类似的格式获取日期,以便比较不同版本的数据集,并查看发生了什么变化 df = pd.DataFrame({ 'date1':['07/23/01', '06/25/17', np.nan, '1/5/06'], 'date2':[np.nan, '12/01/08', '9/02/03', np.nan], 'str1':['aaa
df = pd.DataFrame({
'date1':['07/23/01', '06/25/17', np.nan, '1/5/06'],
'date2':[np.nan, '12/01/08', '9/02/03', np.nan],
'str1':['aaaaf', '23fgsafg', 'dsf5t', np.nan]})
mask = df.astype(str).apply(lambda x : x.str.match('\d{1,2}/\d{1,2}/\d{2}').all())
我尝试了下面的代码,但是这些变量中的每一个都显示为“false”。
我错过了什么
谢谢您可以使用
对于df.列中的列:
如果df[col].dtype.name==“对象”:
如果所有(df[col].str.contains(r'\d{1,2}/\d{1,2}/\d{2}',regex=True,na=True)):
打印(f'{col}列包含类似日期的字符串')
#=>date1列包含类似日期的字符串
#date2列包含类似日期的字符串
请注意,要在输入字符串的任何位置查找正则表达式匹配项,您需要使用Series.str.contains
和regex=True
(因为它基于re.search
方法),因为Series.str.match
要求匹配项仅出现在字符串的开头(因为它基于re.match
方法)
na=True
在检查列中的all
值是否返回True
时,必须使所有np.nan
值为真