数据清洗 Chapter04 | 数据整合

这篇文章讲述的是数据整合。希望这篇数据清洗的文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~


一、数据库风格的DataFrame合并

使用Pandas库中的merge()函数合并数据集

  • 1、建立两个数据集df1和df2
import pandas as pd

df1 = pd.DataFrame({'lkey':['b','b','a','c'],'data1':range(4)})
df2 = pd.DataFrame({'rkey':['a','b','b','d'],'data2':range(4)})

1

  • 2、merge()函数只把重合的部分保存下来

merge()从左到右进行合并,用left_on和right_on指定

pd.merge(df1,df2,left_on='lkey',right_on='rkey')

2

  • 3、把未重合的部分也保存下来

设置how参数outer,可添加两个数据集中left_on与right_on未重合部分

pd.merge(df1,df2,left_on='lkey',right_on='rkey',how='outer')

3

二、索引上的合并

根据索引合并数据集

  • 1、建立两个数据集left1和right1
import pandas as pd
left1 = pd.DataFrame({'key':['a','b','a','a','b','c'],'value':range(6)})
right1 = pd.DataFrame({'group_val':[3.5,7]},index=['a','b'])

4

  • 2、设置right_index和left_index为True

根据left1数据集的key列和right1数据集的索引进行合并

pd.merge(left1,right1,left_on='key',right_index=True,how='outer')

5

三、轴向连接

1

concat()函数对Series或DataFrame进行轴向连接

  • 1、创建两个序列s1和s2
s1 = pd.Series([0,1],index=['a','b'])
s2 = pd.Series([3,4],index=['c','d'])

使用concat()函数对两个序列进行行连接

  • 2、行连接
  pd.concat([s1,s2])

6

  • 3、列连接
pd.concat([s1,s2],axis = 1) 

7

  • 4、设置参数join为inner,可得到基于索引的内连接结果
s3 = pd.concat([s1*5,s2])
pd.concat([s1,s3],axis=1,join='inner')

8

2

对DataFrame进行轴向连接

  • 1、创建两个DataFrame
df1 = pd.DataFrame(np.arange(4).reshape((2,2)),columns=['a','b'])
df2 = pd.DataFrame(np.arange(4).reshape((2,2)),columns=['a','c'])

9

  • 2、使用concat()函数对两个数据集进行轴向连接
pd.concat([df1,df2])

10
合并数据集的索引为0,1,0,1

  • 3、忽略行索引,对数据集进行连接

设置ignore_index = True

pd.concat([df1,df2],ignore_index=True)

11


各位路过的朋友,如果觉得可以学到些什么的话,点个赞再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。每个小伙伴的关注都是本人更新博客的动力!!!

发布了65 篇原创文章 · 获赞 74 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_16146103/article/details/105440664