此问题已在此处有答案:
Identifying/removing redundant columns in a pandas dataframe(5个答案)
昨天关门了。
我需要删除重复的列在Pandas的所有值是相同的所有记录动态。
例如:
df:
Id ProductName ProductSize ProductSize ProductDesc Quantity SoldCount Sales
1 Shoes 9 9 Shoes 143 143 6374
2 Bag XL XL Bag 342 342 2839
3 Laptop 16INCH 16INCH Laptop 452 452 8293
4 Shoes 9 9 Shoes 143 143 3662
5 Laptop 14INCH 14INCH Laptop 452 452 7263
在上面的列中,您可以看到有一些名称完全相同的重复列,并且在不同列名下的所有记录中都有重复的值。我正试着把那些柱子移走。默认情况下,我保留第一个出现的列。
df_output:
Id ProductName ProductSize Quantity Sales
1 Shoes 9 143 6374
2 Bag XL 342 2839
3 Laptop 16INCH 452 8293
4 Shoes 9 143 3662
5 Laptop 14INCH 452 7263
2条答案
按热度按时间km0tfn4u1#
方法1 -使用转置然后使用duplicated()方法查找重复的列,仅保留第一次出现的列。接下来,它获取唯一的列名并将DataFrame转置回其原始形式,只保留唯一的列。最后,它将结果DataFrame分配给df_output。
ID是否包含重复项?在这个更新的版本中,索引在开始时使用df.reset_index(inplace=True)重置,将ID列转换为常规列。删除重复列后,使用df_output.set_index('Id',inplace=True)再次将ID列设置为索引。
通过重置和重新分配索引,可以确保在生成的DataFrame中保留重复的ID。
方法2 -利用nunique()方法来标识只有一个唯一值的列
如果身份证是重复的?在只保留唯一列之后,我们使用df_output.index.duplicated()来标识重复的ID。然后,我们重置索引以将ID列转换为常规列,并使用df_output[~df_output ['Id'].duplicated()]删除具有重复ID的行。最后,再次使用df_output.set_index('Id',inplace=True)将ID列设置为索引。
这样,您就可以处理重复的ID,同时根据值的唯一性删除重复的列。
ne5o7dgx2#
使用
Transpose
使用drop_duplicates