美文网首页
python处理excel离散数值编码

python处理excel离散数值编码

作者: constant007 | 来源:发表于2019-03-09 10:08 被阅读0次
    import pandas as pd 
    df = pd.DataFrame([  
                ['green', 'M', 10.1, 'label1'],   
                ['red', 'L', 13.5, 'label2'],   
                ['blue', 'XL', 15.3, 'label2']])  
    # color、label不具备大小含义,size具有大小意义
    df.columns = ['color', 'size', 'length', 'label']  
    
    print(df)
    
    
    size_mapping = {  
               'XL': 3,  
               'L': 2,  
               'M': 1}  
    df['size'] = df['size'].map(size_mapping)  
    
    #增加一列
    df = pd.DataFrame([  
                ['green', 'M', 10.1, 'label1'],   
                ['red', 'L', 13.5, 'label2'],   
                ['blue', 'XL', 15.3, 'label2']])  
    df.columns = ['color', 'size', 'length', 'label'] 
    size2tall ={
          'M':170,
          'L':160,
          'XL':180}
    
    df['tall']=df['size'].map(size2tall)
    #print(df)
    
    #增加一列 lambda
    df = pd.DataFrame([  
                ['green', 'M', 10.1, 'label1'],   
                ['red', 'L', 13.5, 'label2'],   
                ['blue', 'XL', 15.3, 'label2']])  
    df.columns = ['color', 'size', 'length', 'label'] 
    size2tall ={
          'M':170,
          'L':160,
          'XL':180}
    
    df['tall']=df['size'].map(lambda x: size2tall[x])
    
    print(df)
    
    #方法2  
    
    label_mapping = {lab:idx for idx,lab in enumerate(set(df['label']))}  
    df['label'] = df['label'].map(label_mapping) 
    
    print(df)
    
    #one-hot
    df = pd.DataFrame([  
                ['green', 'M', 10.1, 'label1'],   
                ['red', 'L', 13.5, 'label2'],   
                ['blue', 'XL', 15.3, 'label2']])  
    
    # color、label不具备大小含义,size具有大小意义
    df.columns = ['color', 'size', 'length', 'label']
    print(df)  
    df=pd.get_dummies(df)
    
    print(df.iloc[1,:])
    
    FastStoneEditor1 - Copy.jpg

    相关文章

      网友评论

          本文标题:python处理excel离散数值编码

          本文链接:https://www.haomeiwen.com/subject/egtspqtx.html