# concat

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
df1 = DataFrame(data=np.random.randint(0,100,size=(3,3)),index=['a','b','c'],columns=['A','B','C'])
df2 = DataFrame(data=np.random.randint(0,100,size=(3,3)),index=['a','e','c'],columns=['A','E','C'])
pd.concat((df1,df1),axis=0,join='inner') #列 outer # concat 匹配级联 不匹配级联
pd.concat((df1,df2),axis=0,join='inner') #outer 用的多 df1.append(df2) #在后面追加  默认在列上 级联<表表横纵的拼接>/合并merge的区别<数据的合并>

# merge

一对一 合并
import numpy as np
from pandas import DataFrame,Series
import pandas as pd
df1 = DataFrame({'employee':['Bob','Jake','Lisa'],
'group':['Accounting','Engineering','Engineering'],
})
df2 = DataFrame({'employee':['Lisa','Bob','Jake'],
'hire_date':[2004,2008,2012],
})
pd.merge(df2,df1) #默认inner outer显示全数据
#left, right, how='inner', on条件, left_on=None, right_on=None, left_index=False, right_index=False
多对一合并
df3 = DataFrame({
'employee':['Lisa','Jake'],
'group':['Accounting','Engineering'],
'hire_date':[2004,2016]})
df4 = DataFrame({'group':['Accounting','Engineering','Engineering'],
'supervisor':['Carly','Guido','Steve']
})
pd.merge(df3,df4,'outer')
多对多合并
df1 = DataFrame({'employee':['Bob','Jake','Lisa'],
'group':['Accounting','Engineering','Engineering']})
df5 = DataFrame({'group':['Engineering','Engineering','HR'],
'supervisor':['Carly','Guido','Steve']
})
pd.merge(df1,df5,'right') #on条件 suffixes=('_x', '_y')指定冲突列名
#inner outer左右表数据的完整性 
#left right 区别
加载excl数据: pd.read_excel('excl_path',sheetname=1)
key的规范化
当列冲突时,即有多个列名称相同时,需要使用on=来指定哪一个列作为key,配合suffixes指定冲突列名
df1 = DataFrame({'employee':['Jack',"Summer","Steve"],
'group':['Accounting','Finance','Marketing']})
df2 = DataFrame({'employee':['Jack','Bob',"Jake"],
'hire_date':[2003,2009,2012],
'group':['Accounting','sell','ceo']})
pd.merge(df1,df2,'outer','group',suffixes=('_1', '_2'))
当两张表没有可进行连接的列时,可使用left_on和right_on手动指定merge中左右两边的哪一列列作为连接的列
pd.merge(df1,df5,'outer',left_on='employee',right_on='name',) #有NaN
pd.merge(df1,df5,'inner',left_on='employee',right_on='name',) # 内合并inner交集 只保留两者都有的key(默认模式)
外合并outer并集 how='outer' 补NaN
 

最新文章

  1. Debian8.2 安装搜狗输入法
  2. Delphi项目构成之项目文件DPR
  3. mysql之导入与导出
  4. 【温故而知新-Javascript】图片效果(图像震动效果、闪烁效果、自动切换图像)
  5. 关于gzip压缩
  6. C# GET 和 SET作用
  7. APP-PAY-06153 When Trying To Open Organization Definition Form (文档 ID 1323165.1)
  8. ashx文件的使用
  9. hdu 5402 Travelling Salesman Problem(大模拟)
  10. H面试程序(12): 输出字符串中第一个只出现一次的字母
  11. jsp相对路径和绝对路径小谈
  12. 201521123109《java程序设计》第七周学习总结
  13. Spring MVC NoClassDefFoundError 问题的解决方法。
  14. CentOS 7.3 minimal 开启网络服务
  15. 15 ActionBar.Tab 以及保存fragment对象 代码案例
  16. nginx配置SSL实现服务器/客户端双向认证
  17. 记录vue项目上线遇到的一些问题
  18. hystrix
  19. 如何将一个HTML页面嵌套在另一个页面中
  20. TDD、BDD、ATDD、DDD 软件开发模式

热门文章

  1. vue formatter element表格处理数据
  2. C语言-无符号数与有符号数不为人知的秘密
  3. QQ群985135948入群密码
  4. SpringBoot学习- 9、Slf4j日志
  5. python之路正则表达式
  6. 记录 shell学习过程(3) if 的格式
  7. z-index的展现形式
  8. DSDT/SSDT
  9. AcWing 845. 八数码
  10. 19年7月份面试7家公司,整理的java面试题(答案自行百度解决,也是个学习的过程)