zoukankan      html  css  js  c++  java
  • 层次化索引MultiIndex

    mask=pd.MultiIndex.from_arrays([['Ohio', 'Ohio', 'Colorado'], ['Green','bed', 'Green']],
                                   names=('state', 'color'))
    
    df = pd.DataFrame(np.arange(12).reshape((4, 3)),index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]],
                      columns=mask)
    
    
    df.index.names=['key1','key2']
    df.columns.names=['state','color']
    
    print("
    源数据:
    ",df)
    
    
    print("
    对源数据index排序:
    ",df.sort_index(level=1))
    print("
    交换级别:
    ")
    print(df.swaplevel('key1','key2'))
    print("
    交换级别后排序:
    ")
    print(df.swaplevel('key1','key2').sort_index(level=0))

    结果:

     

     可以对比看到,排序的结果是一样的

     END

    #df.set_index( )函数的用法
    df=pd.DataFrame({'a':range(7),'b':range(7,0,-1),'c':['one','one','one','two','two','two','two'],
                     'd':[0,1,2,0,1,2,3]})
    
    
    print("源数据:
    ",df)
    
    df2=df.set_index(['c','d'])
    df3=df.set_index(['c','d'],drop=False)
    
    
    print("
    df.set_index(['c','d']层次化索引,df2:
    ",df2)
    print("
    df.set_index(['c','d'],drop=False层次化索引,drop,df3:
    ",df3)

    结果:

     END

    left1 = pd.DataFrame({'key': ['a', 'b', 'a', 'a', 'b','c'],'value': range(6)})
    right1 = pd.DataFrame({'group_val': [3.5, 7]}, index=['a', 'b'])
    
    print("left1:
    ",left1)
    print("right1:
    ",right1)
    
    mask=left1.join(right1)
    mask2=left1.join(right1,on='key')
    
    print("
    不指定key值:
    ",mask)
    print("
    指定key值:
    ",mask2)

    结果:

      END

  • 相关阅读:
    shell中括号的特殊用法 linux if多条件判断
    uboot kernel 博客
    meson 中调用shell script
    200. 岛屿数量
    9. 回文数
    53. 最大子序和
    394. 字符串解码
    32. 最长有效括号
    leetcode排序的题 912. 排序数组 215. 数组中的第K个最大元素
    c++引用和运算符重载思考
  • 原文地址:https://www.cnblogs.com/bravesunforever/p/12778749.html
Copyright © 2011-2022 走看看