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

Posted jx1111jx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Python进行数据分析---数据规整化相关的知识,希望对你有一定的参考价值。

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进行数据分析---数据规整化的主要内容,如果未能解决你的问题,请参考以下文章

利用Python进行数据分析-Pandas(第五部分-数据规整:聚合合并和重塑)

数据规整化:清理转换合并重塑

pandas小记:pandas数据规整化

pythonpython3 的CSV数据规整化1

pythonpython3 的CSV数据规整化1

pandas数据规整化:清理转换合并重塑之合并数据集