isinstance()
作用:isinstance() 函数来判断一个对象是否是一个已知的类型
用法:
isinstance(object, classinfo)
参数:
- object -- 实例对象。
- classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值:如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
drop_duplicate()
作用:pandas使用drop_duplicates去除DataFrame重复项参数详解
用法:
drop_duplicates(subset, keep='first', inplace=false)
参数:
- subset -- 列名,如subset=['A','B']表示只考虑这两列,将这两列对应值相同的行进行去重。默认值为subset=None表示考虑所有列
- keep --保留哪个, keep='first'表示保留第一次出现的重复行,是默认值。keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。
- inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。
返回值:dataframe
Example
def read_sheet(path, drop_duplicates_subset=True, **kwargs):
path = Path(path)
assert path.exists()
ext = path.suffix.lower()
if ext in ('.xlsx', '.xls'):
sheet = pd.read_excel(path, **kwargs)
elif ext in ('.tsv', '.csv', '.txt'):
if ext == '.tsv':
kwargs.setdefault('sep', '\t')
kwargs.setdefault('na_filter', False)
kwargs.setdefault('dtype', object)
sheet = pd.read_csv(path, **kwargs)
else:
raise NotImplementedError
if drop_duplicates_subset: # 源数据哪一列去重
if isinstance(drop_duplicates_subset, bool):
subset = None
else:
subset = drop_duplicates_subset
sheet = sheet.drop_duplicates(subset=subset) # drop_duplicates(subset, keep, inplace)
return sheet