在基于某一列的数据框中找出缺失值

7
有没有一种方法可以根据列来找出丢失的值?
例如:
Field_name                Field_Type     Field_Id
Message type identifier       M              0
Nan                           M              1
Bitmap secondary              C              1
Nan                           C              2
Processing code               M              3
Nan                           M              4
Amount-Settlement             C              5

所以在这里,我想知道字段名为Field_name并且Field_Type = 'M'的缺失值,忽略Field_Type = 'C'中的缺失值。

期望输出:

Field_name   Field_Type  Field_Id
Nan                M    1
Nan                M    4

编辑:我们能对数据框列表执行此操作吗?
data_list = [df1,df2,df3]


output : result [[missngvalues in df1],[missngvalues in df2],[missngvalues in df3]]

1
你的意思是,“忽略 Field_Type = 'C' 的缺失值”,而不是“M”。 - Sheldore
1个回答

2
如果缺失值为 nan,则可以使用链式掩码 Series.isnaSeries.eq,用 & 表示按位 AND 进行 == 操作:
df[df.Field_name.isna() & df.Field_Type.eq('M')]

如果 nan 是字符串,使用 Series.eq 进行比较:
df[df.Field_name.eq('Nan') & df.Field_Type.eq('M')]

print (df)

  Field_name Field_Type  Field_Id
1        Nan          M         1
5        Nan          M         4

编辑:

如果需要处理多个DataFrame的列表:

data_list = [df1,df2,df3]
result = [df[df.Field_name.isna() & df.Field_Type.eq('M')] for df in data_list]

1
我稍微编辑了一下问题...你能告诉我怎么做吗? - pylearner
@pylearner - 你能检查一下修改后的答案吗?不确定是需要使用第一种还是第二种解决方案,所以如果必要的话,请将 df.Field_name.isna() 更改为 df.Field_name.eq('Nan') - jezrael
你能帮我解决这个问题吗?问题链接:https://stackoverflow.com/questions/61555519/extract-whole-row-out-where-there-is-maximum-value-based-on-other-column - pylearner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接