2017-04-14 4 views
1

私は、関連ヶ月移入するには、以下の使用しています私は、最後の購入 からの月数を持つ列を持っている (.... 1,2,3)顧客のIDと数ヶ月に関連する列を持つパンダのデータフレームを持っています列どのように求めた値をdependng列を移入?

dt.loc[dt.month == 1, '1'] = 1 
dt.loc[dt.month == 2, '2'] = 1 
dt.loc[dt.month == 3, '3'] = 1 

など、

どのように私は12文の作成を避けるためのより良い方法で列を埋めることができますか?

答えて

2

pd.get_dummies

pd.get_dummies(dt.month) 

あなたがするカラム名を望んでいた場合dt

dt = pd.DataFrame(dict(
     month=np.random.randint(1, 13, (10)), 
     a=range(10) 
    )) 

    a month 
0 0  8 
1 1  3 
2 2  8 
3 3  11 
4 4  3 
5 5  4 
6 6  1 
7 7  5 
8 8  3 
9 9  11 

この

dt.join(pd.get_dummies(dt.month)) 

    a month 1 3 4 5 8 11 
0 0  8 0 0 0 0 1 0 
1 1  3 0 1 0 0 0 0 
2 2  8 0 0 0 0 1 0 
3 3  11 0 0 0 0 0 1 
4 4  3 0 1 0 0 0 0 
5 5  4 0 0 1 0 0 0 
6 6  1 1 0 0 0 0 0 
7 7  5 0 0 0 1 0 0 
8 8  3 0 1 0 0 0 0 
9 9  11 0 0 0 0 0 1 

のように列を追加しデータフレームを考えてみましょう文字列

dt.join(pd.get_dummies(dt.month).rename(columns='month {}'.format)) 

    a month month 1 month 3 month 4 month 5 month 8 month 11 
0 0  8  0  0  0  0  1   0 
1 1  3  0  1  0  0  0   0 
2 2  8  0  0  0  0  1   0 
3 3  11  0  0  0  0  0   1 
4 4  3  0  1  0  0  0   0 
5 5  4  0  0  1  0  0   0 
6 6  1  1  0  0  0  0   0 
7 7  5  0  0  0  1  0   0 
8 8  3  0  1  0  0  0   0 
9 9  11  0  0  0  0  0   1 
関連する問題