gpt4 book ai didi

python-3.x - pandas 选择发生日期时间错误的行

转载 作者:行者123 更新时间:2023-12-05 02:11:33 24 4
gpt4 key购买 nike

我需要对数据框 ( https://pastebin.com/kNqLtUWu ) 中的 dates 执行验证,检查 date 是否有效。如果 date 无效(即 pd.to_datetime 无法解析 - 0107-01-06,例如),我需要填充 Fail 列用

我对包含日期的列进行了子集化,并且能够识别包含无效日期的列并将它们添加到字典中,但还没有弄清楚如何返回特定行。

我对其他方法持开放态度,但我需要使用 pandas 并以失败列结束以指示该行,我计划在其上过滤最终数据框(一个包含行的数据框错误的日期和另一个没有错误的日期)。

完整代码见 pastebin 链接

# insert empty Fail column to identify date errors
df.insert(loc=0, column='Fail', value="")

# replace all blanks with np.NaN
df.replace(r"^s*$", np.nan, regex=True, inplace = True)

# get list of date columns
cols = list(df)
date_cols = cols[2:]

# create empty dict
dfs = {}

# iterate over date columns to identify which columns contain invalid dates & add to dfs
for col in df[date_cols]:
try:
df[col] = df[col].apply(pd.to_datetime, errors='raise')
except:
print("%s column contains invalid date" % col)
dfs[col] = df[col]

最佳答案

你描述的问题可以用coerce和一些逻辑来解决:

# original non_null
notnull = df[col].notnull()

# where to_datetime fails
not_datetime = pd.to_datetime(df[col], errors='coerce').isna()

not_datetime = not_datetime & notnull

关于python-3.x - pandas 选择发生日期时间错误的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57398819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com