是否将处理中有错误的所有行移到另一个数据帧中?

2024-09-30 04:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用以下命令将一些字符串转换为datetime:

polly_jun_jul_trans['Imp_Trans_Date'] = pd.to_datetime(polly_jun_jul_trans['Imp_Trans_Date'])
polly_jun_jul_trans['Imposition_Date_of_Hearing'] = pd.to_datetime(polly_jun_jul_trans['Imposition_Date_of_Hearing'])

但是,我的一些值中有错误,例如:('Unknown string format:','29/06n2018')

将任何一列中出现错误的所有行移到另一个数据帧的最佳方法是什么?我的意思是将第二个命令出现的任何错误行连接到第一个命令出现的错误行上


Tags: ofto命令transdatetimedate错误jun
2条回答

首先通过^{}找到麻烦行的并集。这意味着如果一行的2datetime转换中的任一失败,那么该行将给出False;否则True

df['col1'] = pd.to_datetime(df['col1'], errors='coerce')
df['col2'] = pd.to_datetime(df['col2'], errors='coerce')

error_bool = df['col1'].isnull() | df['col2'].isnull()

然后使用布尔索引:

main = df[~error_bool].copy()
errors = df[error_bool].copy()

我使用^{}来保证新的数据帧不再引用包含所有行的原始数据帧

关于如何删除引起错误的行

您可以使用errorspd.to_datetime()关键字,如下所示:

errors : {‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’

If ‘raise’, then invalid parsing will raise an exception If ‘coerce’, then invalid parsing will be set as NaT If ‘ignore’, then invalid parsing will return the input

您可以使用pd.to_datetime( ____, errors='coerce'),然后使用dropna()

相关问题 更多 >

    热门问题