Python定义函数

问题遇到的现象和发生背景

想把代码改写成函数

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%

dataE1 = pd.read_csv(efile,sep='\t',header=None)
dfE1 = pd.DataFrame(dataE1)
dfE1.reset_index(inplace=True)
dfE1.columns = ['N1', 'E1']
scaler1 = lambda x : x+1
dfE1['N1']= dfE1['N1'].apply(scaler1)

dataE2 = pd.read_csv(efile,sep='\t',header=None)
dfE2 = pd.DataFrame(dataE2)
dfE2.reset_index(inplace=True)
dfE2.columns = ['N2', 'E2']
scaler2 = lambda x : x+1
dfE2['N2']= dfE2['N2'].apply(scaler2)
运行结果及详细报错内容

这样重复的片段可以写成一个函数形式吗

小魔女参考了bing和GPT部分内容调写:
是的,可以将重复的片段写成一个函数形式,这样可以方便程序的重用。下面是一个示例函数:

def data_convert(data,columns,scaler):
    df = pd.DataFrame(data)
    df.reset_index(inplace=True)
    df.columns = columns
    df['NML'] = df['N1'].apply(scaler)
    return df

这个函数接收3个参数:data(要处理的数据)、columns(要设置的列名)、scaler(要使用的转换函数)。然后在函数中将data转换成DataFrame对象,重置索引,设置列名,并使用scaler函数对N1列进行处理,最后返回处理后的DataFrame对象。

使用该函数时,可以这样写:

dfE1 = data_convert(dataE1, ["N1", "E1"], scalerl)
dfE2 = data_convert(dataE2, ["N2", "E2"], scaler2)

这样可以将重复的代码片段改写成一个函数形式,从而大大提高了代码的可读性和可维护性。
回答不易,记得采纳呀。