python - 当 col 使用 pandas 在数据框中具有日期格式时,将所有日期数据类型列动态转换为 YYYY-MM-DD 格式
问题描述
我正在尝试使用来自 read_csv 的数据框将所有日期列动态转换为 YYYY-MM-DD 格式。列在下面。
empno ename sal deptno period_from hiredate report_date end_date
使用 re ,搜索列是否具有“期间或日期”字符,然后转换为 YYYY-MM-DD 格式,但问题是某些列没有“期间或日期”,它们实际上是日期列(例如“来自”列)。
df_columns = [col for col in df.columns if re.search("period|date"),col)]
df(df_columns] = df[df_columns].apply(pd.to_datetime)
现在我想创建一个方法/函数来识别数据框中的所有日期数据类型列,然后转换为 YYYY-MM-DD 格式/用户期望的格式。
解决方案
你可以使用类似的东西:
for col in df.filter(regex='period|date'):
df[col] = pd.to_datetime(df[col])
很难为您提供更好的答案,并且没有示例数据集作为文本的输出,请更新您的问题以获取更多详细信息。
如果你只有这些格式01-01-2021
// 17-Jun-2021
/ 18/06/2021
,31122021
下面应该处理所有这些。只有后一种情况需要指定格式。如果你有更复杂的东西,你需要做一些解析。
for col in df.filter(regex='period|date'):
try:
df[col] = pd.to_datetime(df[col])
except TypeError:
df[col] = pd.to_datetime(df[col], format='%d%m%Y')
推荐阅读
- google-kubernetes-engine - GKE 上的 Kubernetes 节点重置
- django - 在 Django 中保存多个模型
- python - TypeError:当我运行 locustfile.py
- c++ - C2783:无法推断辅助函数的模板参数
- react-native - React-Navigation-5 : 同一屏幕中的多个 MaterialTopTabNavigator
- c# - 我想使用 naudio 删除 mp3 文件的前 10 毫秒和最后 10 毫秒
- javascript - 是否可以使用 d3 并像 vis.js 一样创建线/曲线?
- python - 在 C++ 中逐行读取文件(将代码从 Python 转换为 C++)
- java - 我应该如何正确地将 mp3 转换为字节数组,然后将其转换回 mp3
- sum - SPSS计算交叉表总和的4个不同二进制变量的分数