Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找数据框中具有日期模式的所有列_Python_Regex_Date - Fatal编程技术网

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
值为真