test.CSV原数据展示:
当ncrna_nameh和drug_name一样时,删除多余的重复项,只保留其中一行即可
代码实现:
import pandas as pd
df = pd.read_csv('test.CSV',sep=',',header='infer',usecols=['ncrna_name','drug_name'])#参数sep=','表示使用逗号作为字段分隔符,header='infer'表示自动推断文件中的列名,使用usecol读取指定两列数据
# df.head()
# print(df.shape)
#df[['merchant_r', 'merchant_l']]:从df中取出待组合删重的两列。
#apply(frozenset, axis=1):把取出两列中的行当做变量依次传到frozenset函数中去。
#frozenset:冻结集合,不可变,存在哈希值。经过这个函数就可以解决两行中值的顺序不一致问题。因为集合是无序的,只要值相同不用考虑顺序。
#duplicated():判断变成冻结集合的列是否存在重复值,若存在标记为True。
~:取反操作,把FALSE变成True,True变成False。相当于保留第一行,把其余重复行删除。
df_final = df[~df[['ncrna_name','drug_name']].apply(frozenset, axis=1).duplicated()]
print(df_final.shape)
df_final
效果如图,可以和原文件比对一下已经删除掉多余的重复值:
参考文档: