项目需求:
对目标文件夹中的所有数据进行清洗,合成一个表格,剔除掉指定条件的数据以后,重新生成文件导出。
当前情况:项目写完以后,剔除指定条件的数据代码基本是一样的,准备写一个自定义函数用于统一调用,精简代码。
精简前的代码:
def clearcurrency(x):
清洗货币
if isinstance(x, str):
return(x.replace('$', '').replace(',', ''))
return(x)
def clearpercent(x):
清洗百分号
if isinstance(x, str):
return (x.replace("%", ""))
return(x)
def clearnum(x):
清洗字符串中的“,”
if isinstance(x, str):
return (x.replace(",", ""))
return (x)
删除购买人数在200人以下的数据
result['购买人数'] = result['购买人数'].apply(clearnum).astype('float')
result = result.loc[result['搜索人数'].astype(float) > 200]
删除支付转化率3%以下的数据
result['支付转化率"] = result["支付转化率'].apply(clearpercent).astype("float")
result = result.loc[result["支付转化率"].astype(float)/100 > 0.03]
其他的相似代码我就不贴了,主要是根据条件,删掉不符合要求的数据。
我想把上面的代码做一个精简,把数据按照上面的函数,合并成三类功能模块(主要是我不知道合成一个功能模块该怎么写)
合并后的代码
def clear1(x):
"""
清洗字符串中的“,”
"""
if isinstance(x, str):
return (x.replace(",", ""))
return (x)
def clear2(x,lable_name,pass_number):
"""
清洗小于指定数X的行
"""
x[lable_name] = x[lable_name].apply(clear1).astype("float")
result = x.loc[x[lable_name].astype(float) > pass_number]
return (result)
result = result.clear2(result,"搜索人数", 5)
最终实现的功能是:调用自定义模块,把清洗好的数据按照条件,进行再度精简删除。
1、请问我的代码该怎么修改,以完成功能需求。
2、如果我的代码全错,如果想要实现我上面提到的功能需求,把上面3种不同的功能合并成一个自定义函数,是否可以合并?该怎么写才能实行需求?