我有一个列为 ['ID','Title','Category','Company','Field']
的数据框,它有两个空值,在某些地方缺失的值被作为N/a。我必须选择具有最大可用信息的行
例如,一个案例可能是
'ID' 'Title' 'Category' 'Company' 'Field'
0 ABD12567 Title1 Company1
1 ABD12567 Title1 N/A Field1
2 ABD12567 Title1 Category1 Company1 Field1
3 ABD12567 Title1 Company1
4 ABD12567 Title1 N/A Company1 Field1
在这种情况下,我想选择第2行,因为它有最大的可用信息。我尝试向数据框中添加一个长度的列,我将在其中添加所有字符串长度,并在GROUPBY的帮助下选择长度最大的一个。例如catalog_11=catalog_1.groupby(['ID'], as_index = False).agg({'combined_len': max})
。在本例2中,我将保留该行的索引,并从旧数据帧中筛选出索引为2的行。但这不起作用,因为我在分组后丢失了旧数据帧的索引。不知道如何解决这个问题。请帮我选对一排。不知道如何用其他解决方法解决这个问题
如果有任何其他选择,而不是我使用的组合长度,那么请建议
您可以使用
(~df.isin(["", "N/A"])).sum(1)
通过对axis=1
上的布尔值求和来获取行中有效值的数量。将其与groupby
和idxmax
结合使用:示例数据(添加了一个额外的ID以显示
groupby
):代码:
相关问题 更多 >
编程相关推荐