如何在python中进行匹配时忽略null



我有一个数据帧,我使用regex来检查列的数据模式,同时在其中有null。由于有null,它能够匹配。我不想丢弃它们,也不想用其他值替换它。我想忽略它,尽管我试图得到错误或得到NONE作为输出。我们如何在进行匹配时忽略空值?

代码:

df =
a        b    c
0 rt-0000  abc  1
1          vb   2
2 rt-1234  abc  3
3          op   4
4 rt-123   oip  5
format = 'rt-dddd'
if df['a'].isnull().any():
continue
correct_df = df[df[key].str.match(format )]
wrong_df = df[~df[key].str.match(format )]

输出给出:NONE

当我尝试不忽略null时,我得到了一个错误:'Cannot mask Naan/Null values'

例外输出:

corrected_df:
a        b    c
0 rt-0000  abc  1
1          vb   2
2 rt-1234  abc  3
3          op   4
wrong_df:
4 rt-123   oip  5

我尝试使用不同的if条件,但最终得到了相同的输出。我们可以忽略空值吗?

用于:

df = pd.DataFrame({'a':['rt-0000',np.nan,'rt-1234',np.nan,'rt-123'],
'b':['abc','vb','abc','op','oip'],
'c':[1,2,3,4,5]})
a    b  c
0  rt-0000  abc  1
1      NaN   vb  2
2  rt-1234  abc  3
3      NaN   op  4
4   rt-123  oip  5

您可以简单地使用:

correct_df = df[df.a.str.match(format, na=True)]
wrong_df = df[~df.a.str.match(format, na=True)]

这给出了你的结果:

a    b  c
0  rt-0000  abc  1
1      NaN   vb  2
2  rt-1234  abc  3
3      NaN   op  4

a    b  c
4  rt-123  oip  5

相关内容

  • 没有找到相关文章

最新更新