今天也要吃肉肉呜 2023-02-27 10:21 采纳率: 100%
浏览 21
已结题

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)
运行结果及详细报错内容

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

  • 写回答

2条回答 默认 最新

  • 霸都小魔女 2023-02-27 10:36
    关注

    小魔女参考了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)
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日
  • 创建了问题 2月27日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分