在Pandas中连接文件,实现更改列名或行索引

Pandas数据组合

连接数据
  • 连接介绍

    多个数据串联在一起,形成新数据,这一过程,便是连接

  • 简单连接

    # 导包 
        import pandas as pd
    # 导入数据
        pad = pd.read_csv('data.csv')
        pad2 = pd.read_csv('data2.csv')
        pad3 = pd.read_csv('data3.csv')
    # 连接数据 在这里需要使用到concat()方法来实现连接操作
        result = pd.concat([pad,pad2,pad3])
    # 打印输出
        print(result)

    打印结果:

  • 结论

    在上述结果中可知,将多个文件进行串联在一起,并以垂直方式展示,(请注意看行索引)

  • DataFrame 与Series连接(concat方法默认是添加行,Series数据没有行索引,会自动创建,空值会以NaN填充)

  • 代码实现
    # 创建一个变量用来接收Series对象 n_sr = pd.Series(['北','上','广','深']) # DataFrame与Series进行连接 result = pd.concat([pad,n_sr]) # 打印输出 print(result)

打印结果:

  • 结论

    同上述打印输出方式同理,也是垂直性串联,若数据中与空值,会以NaN进行填充

  • DataFrame和Series连接 改变列表名--行操作

    •  

      代码实现

      # 创建一个变量用来接收DataFrame对象         new_df = pd.DataFrame([['天','南','西','河']],columns = ['E','F','G','H'] ) # 行链接         result = pd.concat(([pad,new_df])) # 打印输出 print(result)

打印结果:

 结论

                同上述打印输出方式同理,也是垂直性串联,若数据中与空值,会以NaN进行填充,并新增4列,给定指定值

  • append函数--行操作

    • 在concat中,是可以连接多个对象的,只需要通过追加对象即可,可通过append来实现

    •  

      代码实现

      # 定义一个变量接收结果 result =(pad.append(pad2)) # 打印输出 print(result)

      打印结果:

  • 重置索引---行操作

    在将多个文件串联在一起,索引都不一样,现通过重置方式,进行索引值为有序,在这里需要实现,则仅仅只需要在连接后面加上:ignore_index = True即可,主要作用就是忽略掉DataFrame索引。

    • 代码实现

      # 进行多文件连接
              result = pd.concat([pad,pad2,pad3],ignore_index=True)
      # 打印输出
              print(result)

打印结果:

  • concat 实现列操作

    与行操作基本一致,仅仅在连接位置多了一个:axis ,默认值为index,按行添加,传入参数为 axis = (列)

    • 代码示例

      # 连接多个文件,且以列方式连接  
          result = pd.concat([pad,pad2,pad3],axis=1)
      # 打印输出
          print(result)

打印结果:

  • 结论:axis = 1 ,表示在第一个文件内容后面直接新增,并是以列方式

  • 在列末尾新增一列 通过:dataFrame['新增列名'] = ['值']

    • 代码实现

      # 连接多个文件,且以列方式连接  
              result = pd.concat([pad,pad2,pad3],axis=1)
      ​
      #  添加列  直接给DataFrame添加列,格式为: dataFrame[列名] = [列数据]  
              result['New_list'] =['aa','bb','cc','dd']
      # 打印输出
              print(result)

打印结果​:

  • 通过DataFrame[’列名‘] = Series对象

  • 代码实现

            # 连接多个文件,且以列方式连接

                  result = pd.concat([pad,pad2,pad3],axis=1) ​      

           # 通过 DataFraem[’列名‘] = pd.Series([‘数据‘])     

                  result['New_sr'] =pd.Series(['aaa','bbb','ccc','ddd'])  

           # 打印输出  

                 print(result)

打印结果:

  • 重置列索引

    上述效果中,在列名位置,出现很多重复性列名,现将其设置为索引方式展示,且是顺序

    • 代码实现

      # 连接文件,通过axis修改列,通过ignore_index = True 重置,默认为false,不重置
          result = pd.concat([pad,pad2,pad3],axis='columns',ignore_index=True) 
      # 打印输出
          print(result)

打印结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值