码迷,mamicode.com
首页 > 编程语言 > 详细

利用Python进行数据分析---数据规整化

时间:2018-09-02 18:35:04      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:RKE   1.0   字符串   指定   and   并集   个数   数据   对象   

1、合并数据集

、多对一合并

我们需要用到pandas中的merge函数,merge函数默认情况下合并的是两个数据集的交集(inner连接),当然还有其他的参数:

how里面有inner、outer、left、right,四个参数可以选择,分别代表:交集,并集,参与合并的左侧DataFrame,以及右侧

当列名对象相同时:
df1=pd.DataFrame({key:[a,c,a,b,a,c,b,c],data1:range(8)})
df2=pd.DataFrame({key:[a,b,d],data2:range(3)})
pd.merge(df1,df2,on=key)
返回
     key  data1  data2
0    a    0    0
1    a    2    0
2    a    4    0
3    b    3    1
4    b    6    1
当列名对象不同时:
df1=pd.DataFrame({lkey:[a,c,a,b,a,c,b,c],data1:range(8)})
df2=pd.DataFrame({rkey:[a,b,d],data2:range(3)})
pd.merge(df1,df2,left_on=lkey,right_on=rkey,how=‘outer’)
返回为
    
     lkey   data1 rkey    data2
0    a    0.0    a    0.0
1    a    2.0    a    0.0
2    a    4.0    a    0.0
3    c    1.0    NaN    NaN
4    c    5.0    NaN    NaN
5    c    7.0    NaN    NaN
6    b    3.0    b    1.0
7    b    6.0    b    1.0
8    NaN    NaN    d    2.0

②、多对多合并

df1=pd.DataFrame({key:[b,c,b,a,b,a],data1:range(6)})
df2=pd.DataFrame({key:[a,a,c,b,d],data2:range(5)})
pd.merge(df1,df2,on=key,how=right)
返回为
      key  data1 data2
0    b    0.0    3
1    b    2.0    3
2    b    4.0    3
3    c    1.0    2
4    a    3.0    0
5    a    5.0    0
6    a    3.0    1
7    a    5.0    1
8    d    NaN    4

多对多合并产生的是行的笛卡尔积,即df1有2个a,df2有2个a,并集会产生4个a

当需要根据多个键进行合并时,只要传入一个列名组成的列表就可以。

在合并运算时,需要对重复列名的处理,suffixes函数可以指定附加到左右两个DataFrame对象的重复列名上的字符串

2、索引上的合并

 

利用Python进行数据分析---数据规整化

标签:RKE   1.0   字符串   指定   and   并集   个数   数据   对象   

原文地址:https://www.cnblogs.com/jx1111jx/p/9574447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!