python - 如何检查熊猫列中的日期格式
问题描述
好的,所以我在 Pandas 表中有一个列,该列是从我试图通过的 CSV 文件创建的,并检查每个单元格是否是日期。其中大多数是,但有一些我想从列中丢弃的例外。我可以使用 dateutil 工具和从另一个论坛获取的以下代码来插入单个单元格并检查它是否是日期:
from dateutil.parser import parse
def is_date(string, fuzzy = False):
try:
parse(string, fuzzy = fuzzy)
return True
except ValueError:
return False
print(is_date(df.loc[0, 'Column_Name']))
当我运行代码时,这将返回“True”。我想要做的是使用 try 循环检查列中的每个单元格,如果值为“False”,则完全删除该行。我是编码新手,循环部分有问题。感谢您的帮助!
编辑:先是月,然后是天。我现在可以看到,这不是格式的最佳示例,但这并不重要,因为所有日期条目都将采用相同的格式。某些单元格将是其他内容,例如我要排除的用户评论。但是,我能够找到一种方法来遍历列并打印日期时间格式的字符串(如果它是日期)并传递非日期字符串:
def is_date(date_str, fuzzy = False):
try:
parse(date_str, fuzzy = fuzzy)
return date_str
except ValueError:
pass
i = 0
while i < len(df['Column_Name']):
date_group = is_date(str(df.loc[i, 'Column_Name']))
try:
date_change = datetime.datetime.strptime(date_group, '%m/%d/%y').date()
print(date_change)
except:
pass
i = i + 1
现在我需要写入一个新列,如果 T 然后写入日期,如果 F 从新列中排除
解决方案
我要做的是通过应用您的函数来创建另一列,然后删除返回 false 的行
df['return_label'] = df['Column_Name'].apply(is_date)
df = df[df['return_label']==True]
推荐阅读
- java - 密码无效或用户没有密码
- java - 打印以下 1 2 3 4 Bus 6 7 8 9 bUs 11 12 13 14 bus
- sorting - 整数排序算法
- python-3.x - 即使我只有一个 Tkinter 窗口,复选框总是返回 false?
- amazon-web-services - 我可以在 AWS S3 托管网站中包含 Routes 和 Node_modules
- groovy - 将来自 Groovy 的 matchesJsonPath 注入 Spring Cloud Contract
- linux - 由于“错误:无法计算目标文件的后缀”,从 bash 脚本运行 ./configure 失败
- react-native - 如何从弹出的 Expo 项目中删除“android.hardware.location”权限请求?
- parse-platform - 不使用 ObjectId (JS) 保存对象(如果不存在)
- javascript - 从 JSX 按钮调用另一个文件的类函数