如何检查熊猫列中的日期格式

时间:2020-02-18 23:33:30

标签: 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”,则将其完全删除。我是新手,在循环部分遇到了麻烦。感谢您的帮助!

编辑: 是月初,然后是天。现在,我可以看到这不是该格式的最佳示例,但这并不重要,因为所有日期条目都将采用相同的格式。某些单元格将是其他内容,例如我要排除的用户评论。但是,我能够找到一种方法来遍历该列并打印datetime格式的字符串(如果它是一个日期)并传递非日期字符串:

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排除在新列之外

1 个答案:

答案 0 :(得分:0)

我要做的是通过应用函数创建另一列,然后删除返回false的行

df['return_label'] = df['Column_Name'].apply(is_date)

df = df[df['return_label']==True]
相关问题