pandas笔记二(数据连接、合并、分组和聚合函数)

本文介绍了Pandas中数据连接、合并的差异,重点讲解了`pd.concat()`方法,以及数据分组和聚合操作,包括`groupby()`后的`transform()`和`agg()`函数,用于自定义聚合运算。
摘要由CSDN通过智能技术生成

数据连接和合并

总结差别:

  • 1、当没有索引时:merge、join为按照一定条件合并
  • 2、当有索引、并按照索引合并时,得到结果为两者混合到一起了,重新按照一定规则排序了。
  • 3、当没有索引时、concat不管列名,直接加到一起,可以加到后面、也可以加到右边,axis=0为加到后面,axis=1为加到右边,左边的数据结构没有变,变的是右边数据结构。
  • 4、当有索引、并按照索引合并时,得到结果两者混合到一起了。

数据连接 merge

def merge(left, right, how='inner', on=None, left_on=None, right_on=None,
          left_index=False, right_index=False, sort=False,
          suffixes=('_x', '_y'), copy=True, indicator=False,
          validate=None)
参数 说明
left与right 两个不同的DataFrame
how 指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inner,连接时没有就以NaN填充
on 指的是用于连接的列索引名称。必须存在左右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键
left_on 左则DataFrame中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用。
right_on 右则DataFrame中用作 连接键的列名
left_index 使用左则DataFrame中的行索引做为连接键
right_index 使用右则DataFrame中的行索引做为连接键
sort 默认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能
suffixes 字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为(’_x’,’_y’)
copy 默认为True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能
indicator 在 0.17.0中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)
df1 = pd.DataFrame(
    {
   'key1':list('abcdefgh'),
     'data1':np.random.randint(-5,10,8)}
)

df2 = pd.DataFrame(
    {
   'key2':list('abcde'),
     'data2':np.random.randint(-5,10,5)}
)
# 两表合并 根据on参数相同的值合并,如果不指定默认根据相同的列合并
# print(pd.merge(df1,df2, on='key', suffixes=['左表', '右表']))  # suffixes指定后缀
# 如果两张表没有相同的列的时候,可以通过left_on和right_on来指定连接条件(列)
print(pd.merge(df1,df2, left_on='key1', right_on='key2'))
# 参数how默认是inner也就是内联,如果outer就是并集,没有就以NaN填充
print(pd.merge(df1,df2, left_on='key1', right_on='key2', how='outer'))
# 左连接和右连接,意思是以左为准或者是以右为准
print('#####################')
print(pd.merge(df1,df2
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值