我正在制作一个包含以下栏目的excel文件:-
DF1
Number Dateopened Status Date closed Work
1 2019-10-30 10.10 Open 2019-10-30 12.10 walking
2 2019-9-30 11.10 Open 2019-9-31 12.10 cycling
3 2019-5-30 10.10 Closed 2019-5-30 12.10 nothing
4 2019-4-30 10.10 Open 2019-4-30 12.10 walking
我可以使用以下代码更改日期格式:-
df1['Dateopened'] = pd.to_datetime(df1['Dateopened']).dt.strftime("%b %d,%Y - %I:%M%p")
df1['Date closed'] = pd.to_datetime(df1['Date closed']).dt.strftime("%b %d,%Y - %I:%M%p")
在我的代码中,我需要手动输入列的名称。我可以做些什么来让python代码本身搜索这些列并修改数据格式。
您还可以检查列名:
for col in df1.columns:
if col.lower().startswith("date"):
df1[col] = pd.to_datetime(df1[col]).dt.strftime("%b %d,%Y - %I:%M%p")
可以使用regex检测存在日期字段的列。
\d*[-]\d*[-]\d*.*
可以帮助您检测日期部分,假设列以日期开头。 可以在数据框架的一行上应用正则表达式,并筛选正则表达式匹配的列。
如果包含日期的所有列都采用特定格式,则可以考虑使用正则表达式。 解决方案如下所示:
toModify = []
for column in df:
if(re.match(pattern, column)):
toModify.append(column)
然后您就有了所有需要修改的列名。 迭代它。