Create a sub columns in the dataframe using a another dataframe

前端 未结 3 422
粉色の甜心
粉色の甜心 2021-01-29 03:41

I am new to the python and pandas. Here, I have a following dataframe .

did           features   offset   word   JAPE_feature  manual_feature 
0             200          


        
3条回答
  •  [愿得一人]
    2021-01-29 04:10

    These types of problems can be solved in many ways. But here I am using simple way to solve it. Creating df with those features list as a column names and the using some comparison logic to update df with 0 and 1. You can use some other logic to avoid use of for loops.

    import pandas as pd
    
    data = {'id':[0,1,2,3,4,5,7,8,9,10],
    'features':[200, 200, 200, 200, 100, 100, 2200, 2600, 2600, 4600]}
    
    df1 = pd.DataFrame(data)
    
    features_list = [100,200,2200,2600,156,162,4600]
    id_list = df1.id.to_list()
    
    df2 = pd.DataFrame(columns=features_list)
    list2 = list()
    
    for i in id_list:
        list1 = list()
        for k in df2.columns:
            if df1[df1.id == i].features.iloc[0] == k:
                list1.append(1)
            else:
                list1.append(0)
        list2.append(list1)
    
    for i in range (0,len(list2)):
        df2.loc[i] = list2[i]
    
    df2.insert(0, "id", id_list)   
    
    >>>(df2)
       id 100 200 2200 2600 156 162 4600
    0   0   0   1    0    0   0   0    0
    1   1   0   1    0    0   0   0    0
    2   2   0   1    0    0   0   0    0
    3   3   0   1    0    0   0   0    0
    4   4   1   0    0    0   0   0    0
    5   5   1   0    0    0   0   0    0
    6   7   0   0    1    0   0   0    0
    7   8   0   0    0    1   0   0    0
    8   9   0   0    0    1   0   0    0
    9  10   0   0    0    0   0   0    1
    

提交回复
热议问题