当前位置:   article > 正文

Python Pandas操作Excel 03_python pandas excel 2003 版本

python pandas excel 2003 版本

3.1 Pandas操作Excel 03


3.1.1 连接查询 Merge

在这里插入图片描述

① inner join(取交集,数据交叉的部分,取出来。)

② left join (以左表为主,合并数据。最后合并出来的数据,主要的key 只能出现 左表中的 数据。所以可以用 left join 来检验 右表是否存在左表中的某个数据。)

③ right join (以右表为主,合并数据。最后合并出来的数据,主要的key 只能出现 右表中的 数据。所以可以用来 检验坐标中 是否存在右表中的某个数据,)

④ outer(取并集,数据直接合并不考虑主次。)

import pandas as pd
import numpy as np

print(np.arange(6))
数据1 = pd.DataFrame({'姓名':['aa','bb','cc','dd','ee','ff'],'age1':np.arange(6)})

数据2 = pd.DataFrame({'姓名':['aa','bb','cc'],'age2':np.arange(3)})

# merge 默认就是取 交集,即 inner
数据3 = pd.merge(数据1,数据2)
数据3 = pd.merge(数据1,数据2,on = '姓名',how = 'inner')
print(数据3)
print("*"*30)
数据3 = pd.merge(数据1,数据2,on = '姓名',how = 'left')
print(数据3)
print("*"*30)
数据3 = pd.merge(数据1,数据2,on = '姓名',how = 'right')
print(数据3)
print("*"*30)
数据3 = pd.merge(数据1,数据2,on = '姓名',how = 'outer')
print(数据3)
print("*"*30)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述


3.2.1 多个key

import pandas as pd

数据1 = pd.DataFrame({"姓名":['aa','aa','cc'],'班级':[1,2,1],'分数':[10,20,30]})
数据2 = pd.DataFrame({"姓名":['aa','aa','cc','cc'],'班级':[1,1,1,2],'分数':[40,50,60,70]})

print(数据1)
print("*"*30)
print(数据2)
print("*"*30)
数据3 = pd.merge(数据1,数据2,on = ['姓名','班级'],how = 'right')

print(数据3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

以 多个列 为主,进行连接。这个时候 必须 各个列的值 都对应上。才能进行 有效的连接。

在这里插入图片描述


3.3.1 索引与列 连接

import pandas as pd
import numpy as np

数据1 = pd.DataFrame({'姓名':['aa','bb','dd','aa','bb'],'次数':range(5)})
数据2 = pd.DataFrame({'数据':[10,20]},index=['aa','bb'])

print(数据1)
print("*"*30)
print(数据2)

# 用左表的 姓名列 连接 右表的索引
数据3 = pd.merge(数据1,数据2,left_on='姓名',right_index=True,how = 'inner')

数据4 = 数据1.join(数据2)


print(数据3)
print("*"*30)

print(数据4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

有时候,我们 一张表的 列和另一张的索引 还可能有关系。那么我们就要 特别的指明,左右表的 哪一列?和 左右表的哪一索引,然后 再提供连接方式即可。

在这里插入图片描述


3.4.1 join() 横向连接or合并

import pandas as pd
import numpy as np

数据1 = pd.DataFrame({'姓名':['aa','bb','dd','aa','bb'],'次数':range(5)})
数据8 = pd.DataFrame({'数据':[10,20]})
数据4 = 数据1.join(数据8)
print(数据4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

切记,索引 一样的时候,才能 横向连接 成功。因为 横向连接,依靠的就是 索引。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/663886
推荐阅读
相关标签
  

闽ICP备14008679号