pandas(三)

发布时间:2019-05-23 21:23:13编辑:auto阅读(1920)

    合并数据集:

      创建一个能创建dataframe的函数

      def make_data(cols,ind):

        data={c:[strc(c)+str(i) for i in ind] 

          for c in cols}

        return pd.DataFrame(data,ind)

       make_data('ABC',range(3))

     

    一维数组

    ser1 = pd.Series(['a','b','c'],index=[1,2,3])

    ser2 = pd.Series(['d','e','f'],index=[4,5,6])

    pd.concat([ser1,ser2])  

     

    二维数组

    df1 = make_data('ab',[1,2])

    df2 = make_data('ab',[3,4])

    pd.concat([df1,df2])  默认逐行合并axis=0(上下合并)

     

    pandas 在合并索引时会保留索引,即使是重复的

     

    触发索引重复异常:

    veriy_integrity参数可以触发索引重复异常

    try:

      pd.concat([x,y],verify_integrity=True)

    except  ValueError as e:

      print('v')

     

    忽略索引重复异常:

    ignore_index可以实现忽略原先索引重新创建一个整数索引

       

    当列名有相同也有不相同时

    join,join_axes

    join默认参数是outer 取两个数组的并集

    inner指取两个数组的交集

     

    append效果和concat相同

    df1.append(df2)

     

    重复列名 suffixes

    df8 = pd.DataFrame({'name':['a','b','c'],'rank':[1,2,3]})

    df9 = pd.DataFrame({'name':['a','b','c'],'rank':[4,5,6]})

    pd.merge(df8,df9,on='name',suffixes=['_L','_R'])

    merge效果和concat相同,on表示以name这一列为基础合并,suffixes表示将相同的两列区分

     

     

     

      

关键字