pandas的concat、merge函数、处理数据

2024-02-29 1780阅读

温馨提示:这篇文章已超过388天没有更新,请注意相关的内容是否还可用!

1、concat()函数

pandas的concat、merge函数、处理数据
(图片来源网络,侵删)

pandas的concat()函数用于连接(合并)pandas对象,如Series、DataFrame或Panel,沿指定的轴进行连接。

语法:

pandas.concat(objs, axis=0, join=‘outer’, ignore_index=False, keys=None)

参数说明:

  • objs: 要连接的pandas对象的序列或映射。通常为Series或DataFrame对象。
  • axis: 指定连接的轴,0表示按行连接,1表示按列连接。
  • join: 指定连接的方式,默认为’outer’表示取并集。可选值为’inner’表示取交集。
  • ignore_index: 是否忽略原始对象的索引。默认为False,表示保留原始索引。
  • keys: 用于构建层次化索引的键值,可以是任意值。

    pandas库提供了concat()函数用于将多个数据集按照指定的轴方向进行拼接,可以有以下几种常见的用法:

    1. 按行拼接:将多个数据集按照行的方向进行拼接,即把多个数据集竖向拼接在一起。示例代码如下:
    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
    result = pd.concat([df1, df2])
    print(result)
    
    1. 按列拼接:将多个数据集按照列的方向进行拼接,即把多个数据集横向拼接在一起。示例代码如下:
    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
    result = pd.concat([df1, df2], axis=1)
    print(result)
    
    1. 指定索引:通过ignore_index参数可以重新生成新的索引,示例代码如下:
    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
    result = pd.concat([df1, df2], ignore_index=True)
    print(result)
    
    1. 指定连接方式:通过join参数可以指定拼接的方式,可选的取值包括'inner'、'outer'。默认为'outer'表示并集,'inner'表示交集。示例代码如下:
    import pandas as pd
    df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
    df2 = pd.DataFrame({'A': [2, 3, 4], 'B': [5, 6, 7]})
    result = pd.concat([df1, df2], join='inner')
    print(result)
    

    以上是常见的几种concat()函数的用法,根据具体的数据拼接需求,可以灵活选择合适的参数来处理数据。

    2、merge()函数

    pandas库中的merge()函数是用于合并两个DataFrame对象的方法。

    merge()函数的常用参数如下:

    • left:表示第一个DataFrame对象。
    • right:表示第二个DataFrame对象。
    • how:表示合并的方式,默认为’inner’(交集),其他可选值有’outer’(并集)、‘left’(左连接)、‘right’(右连接)。
    • on:表示用于合并的列名,可以是单个列名或包含多个列名的列表。
    • left_on和right_on:表示合并时左右DataFrame对象中用于合并的列名,如果左右两个DataFrame对象中的列名不同,则需要分别指定。
    • suffixes:表示合并后重复列名的后缀,默认为(‘_x’, ‘_y’)。

      pandas中的merge函数可以根据指定的列或索引将两个DataFrame对象进行合并。以下是merge函数的常用参数和使用方法:

      1. 基本用法:
      df_merged = pd.merge(df1, df2, on='column_name')
      

      此用法将df1和df2按照指定的列名"column_name"进行合并,并返回一个新的合并后的DataFrame对象df_merged。

      1. 指定合并方式:
      df_merged = pd.merge(df1, df2, on='column_name', how='inner')
      

      merge函数的how参数可以设置合并的方式,包括’inner’、‘outer’、‘left’、‘right’。默认为’inner’,表示取交集。其他方式分别表示取并集、以df1为准、以df2为准。

      1. 指定合并的列名:
      df_merged = pd.merge(df1, df2, left_on='column1', right_on='column2')
      

      如果要合并的列名不同,可以使用left_on和right_on参数分别指定df1和df2中要合并的列名。

      1. 多列合并:
      df_merged = pd.merge(df1, df2, on=['column1', 'column2'])
      

      可以通过一个列表指定多个列名,进行多列合并。

      1. 处理缺失值:
      df_merged = pd.merge(df1, df2, on='column_name', how='outer')
      

      通过设置how参数为’outer’,可以将缺失值填充为NaN。

      以上是merge函数的一些常用用法,详细的参数和用法可以参考pandas官方文档。

      3、pandas处理JSON数据

      pandas可以非常方便地处理JSON数据。下面是一个示例,展示了如何使用pandas读取和处理JSON数据:

      首先,我们需要使用pandas的read_json()函数读取JSON数据。这个函数可以直接读取包含JSON数据的文件,并将其转换为pandas的DataFrame对象。

      import pandas as pd
      # 读取JSON数据
      data = pd.read_json('data.json')
      # 查看数据
      print(data)
      

      如果JSON数据是以字符串形式存储在变量中,而不是保存在文件中,可以使用pandas的json.loads()函数将其转换为Python字典,然后再通过pd.DataFrame.from_dict()函数转换为DataFrame对象。

      import pandas as pd
      import json
      # JSON数据字符串
      json_data = '{"name": "Alice", "age": 25}'
      # 转换为Python字典
      data_dict = json.loads(json_data)
      # 转换为DataFrame对象
      data = pd.DataFrame.from_dict(data_dict, orient='index')
      # 查看数据
      print(data)
      

      一旦数据被转换为DataFrame对象,就可以使用pandas提供的各种函数和方法对其进行处理和分析。例如,可以使用data['name']或data.loc['name']来访问DataFrame中的某一列,使用data.iloc[0]或data.loc['name']来访问DataFrame中的某一行。

      如果JSON数据是一个包含多个对象的数组,可以使用pd.concat()函数将多个DataFrame对象合并为一个DataFrame对象。假设JSON数据的每个对象都是一个人的信息,包括姓名和年龄:

      import pandas as pd
      # JSON数据
      json_data = '[{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 35}]'
      # 转换为DataFrame对象
      data = pd.concat([pd.DataFrame.from_dict(d, orient='index') for d in json.loads(json_data)], axis=1)
      # 查看数据
      print(data)
      

      这样,我们就可以方便地使用pandas对JSON数据进行处理和分析了。

      4、处理数据

      要删除财报数据中的金融行业数据,您可以按照以下步骤使用pandas进行处理:

      1. 导入pandas库:
      import pandas as pd
      
      1. 读取财报数据文件:
      df = pd.read_csv('财报数据.csv')
      
      1. 查看数据中的行业分类列:
      print(df['行业分类'])
      
      1. 确定金融行业所对应的行业分类值,然后创建一个布尔索引(例如,将行业分类为金融的数据标记为True,其他行业标记为False):
      金融行业 = df['行业分类'] == '金融'
      
      1. 使用布尔索引来过滤数据框,只保留非金融行业的数据:
      df = df[~金融行业]
      
      1. 可选择将过滤后的数据保存到新的csv文件中:
      df.to_csv('非金融行业数据.csv', index=False)
      

      通过以上步骤,您可以使用pandas处理财报数据并删除金融行业数据。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]