首页 > 编程语言 >Python_DataFrame-的apply方法的应用示例_pandas

Python_DataFrame-的apply方法的应用示例_pandas

时间:2024-05-25 22:00:45浏览次数:15  
标签:示例 Python args effect DataFrame df reason apply type

DataFrame

拆分-应用-合并 split-apply-combine 
  apply()   方法是针对某些行或列进行操作的,
  applymap()方法是针对所有元素进行操作的

DataFrame 对象,apply 函数的语法如下:
    DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
Series 对象,apply 函数的语法如下:
     Series.apply(func, convert_dtype=True, args=(), **kwds)

    args:要传递给函数的额外参数。
    *kwds:要传递给函数的额外关键字参数
	
自定义函数
      定义:第一个参数是 DataFrame的行或者列,第二个参数是可以
      使用:这个函数不带任何括号地传递给apply()方法  其他参数 args=(2,)  
	  
split-apply-combine”(拆分-应用-合并)很好地描述了分组运算的整个过程

代码示例

import os.path
import pandas as pd


def check_effect_detail(data, check_type=1):
    effect_type_list = []
    effect_fields_type_words = ['A', 'B',]
    effect_reason_type_words = ['C', 'D',]
    if check_type == 1:
        effect_key_words = effect_fields_type_words
    else:
        effect_key_words = effect_reason_type_words
    for effect_type in effect_key_words:
        if effect_type in str(data):
            effect_type_list.append(effect_type)
    return effect_type_list


def combine_effect_info(data):
    info = data.iloc[0] + data.iloc[1] + data.iloc[2]
    set_data = set(info)
    out = ' '.join(set_data)
    return out


if __name__ == "__main__":
    input_dir = r"C:\Desktop"
    input_file_nm = r"effect_info.xlsx"
    out_file_nm   = r"effect_judge.xlsx"
    input_file_path = os.path.join(input_dir, input_file_nm)
    out_file_path   = os.path.join(input_dir, out_file_nm)
    # 读取Excel文件
    df = pd.read_excel(input_file_path)
    # 显示数据框内容
    # print(df["班级编号"],df["班级内容"],df["功课内容"],df["功课结论"])
    # Series.apply
    df['班级内容_field'] = df["班级内容"].apply(check_effect_detail, args=(1,))
    df['功课内容_field'] = df["功课内容"].apply(check_effect_detail, args=(1,))
    df['结论内容_field'] = df["功课结论"].apply(check_effect_detail, args=(1,))
    # dataFrame.apply()
    df['field'] = df[['班级内容_field', '功课内容_field', '结论内容_field']].apply(combine_effect_info, axis=1)
    # Series.apply
    df['班级内容_reason'] = df["班级内容"].apply(check_effect_detail, args=(2,))
    df['功课内容_reason'] = df["功课内容"].apply(check_effect_detail, args=(2,))
    df['结论内容_reason'] = df["功课结论"].apply(check_effect_detail, args=(2,))
    # dataFrame.apply()
    df['reason'] = df[['班级内容_reason', '功课内容_reason', '结论内容_reason']].apply(combine_effect_info, axis=1)
    data_out_df = df[["班级编号", "班级内容", "功课内容", "功课结论", "field", "reason"]]
    data_out_df.to_excel(out_file_path, index=False)

参考

数据预处理的示例     

标签:示例,Python,args,effect,DataFrame,df,reason,apply,type
From: https://www.cnblogs.com/ytwang/p/18213058

相关文章

  • Python小白必备!清华大牛整理的《Django零基础入门到精通》手册
    Django是Python社区的两大最受欢迎的Web框架之一(另一个是Flask)。凭借功能强大的脚手架和诸多开箱即用的组件,可以使你能够以最小的代价构建和维护高质量的Web应用。从好的方面来看,Web开发激动人心且富于创造性;从另一面来看,它却是份繁琐而令人生厌的工作。通过减少重复......
  • 800个程序实例、5万行代码!清华大学出版【Python王者归来】
     Python的丰富模块(module)以及广泛的应用范围,使Python成为当下最重要的计算机语言之一,本书尝试将所有常用模块与应用分门别类组织起来,相信只要读者遵循本书实例,定可以轻松学会Python语法与应用,逐步向Python高手之路迈进,这也是撰写本书的目的。本书以约800个程序实......
  • python爬虫js逆向(标准算法加密)
    在爬取某些网站时,可能会遇到一些参数或头部信息进行字符串加密、数据加密或字符串编码等问题,导致不能正确获取到我们想要的数据。step1观察是否有加密通过正常方法请求网页,并且也加了请求头和请求参数伪装浏览器,发现返回的状态码还是4xx,那么就要考虑到是否是请求头或者请求......
  • python管理k8s集群
    1、python怎么管理k8sk8s最核心的组件就是api-server,大部分的组件都是监听这个端口的,因此只有有着api就能进行使用python来管理k8s了2、操作1、参数详细的介绍#导入这些库fromkubernetesimportclient,configfromkubernetes.streamimportstreamApi_Instance=clie......
  • Pandas合并操作——《Python数据分析库Pandas》
    Pandas合并操作——《Python数据分析库Pandas》Pandas合并操作使用`merge`方法进行数据合并使用`concat`方法进行数据堆叠使用`join`方法进行列连接`merge`方法的更多选项`concat`方法的轴参数`join`方法与`merge`方法的比较性能考虑总结Pandas合并操......
  • Pandas连接操作——《Python数据分析库Pandas》
    Pandas连接操作——《Python数据分析库Pandas》Pandas连接操作内连接(InnerJoin)左连接(LeftJoin)右连接(RightJoin)外连接(OuterJoin)总结Pandas连接操作Pandas是一个强大的Python数据分析库,它提供了丰富的数据结构和数据操作工具,使得数据处理变得简单......
  • Pandas分类对象——《Python数据分析库Pandas》
    Pandas分类对象——《Python数据分析库Pandas》Pandas分类对象分类对象的创建分类对象的属性和方法分类对象的应用场景示例:使用分类对象进行数据分析总结Pandas分类对象Pandas分类对象(Categorical)是Pandas库中一种用于处理分类数据的数据类型。分类数据......
  • Python 潮流周刊#52:Python 处理 Excel 的资源
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了12篇文章,12个开源项目,赠书5本《网络是怎样连接的》,全文1......
  • Django中型项目的目录结构和一个应用创建启动示例
    一个中等Django项目的目录结构包含多个应用、配置文件、静态文件和模板文件等。myproject/├──manage.py#Django项目管理脚本,用于运行服务器、迁移数据库等管理命令├──myproject/#项目配置目录,包含全局配置文件和静态、模板文件│├──__init__.......
  • python系列:Python3 XML处理模块详解
    Python3XML处理模块详解Python3XML处理模块详解一:XML文件格式二:ElementTree解析XML文件Element常用属性如下:1、tag2、attrib3、text4、childelements三:Element之查找四:Element之修改五:Element之删除六:Element之增加七:Element之排序Python3XML处理模块详解x......