2017-10-31 6 views
1

私はその後、DFがどのように見えるデータフレームにいくつかの列を追加するには?

df = df.unstack(level=-1,fill_value = '0') 
df = df.unstack(level=-1,fill_value = '0') 
df = df.stack() 

を使用し、この

        value 
msno    features days  
B     num_50  1  0 
C     num_100 3  1 
A     num_100 400  2 

のようなデータフレームがあります。今

   value 
days       1  3  400 
msno    features   
B     num_50  0  0  0 
        num_100 0  0  0 
C     num_50  0  0  0 
        num_100 0  1  0 
A     num_50  0  0  0 
        num_100 0  0  2 

、私はこれが0でdfを記入したいが、まだ維持を元のデータ:

      value 
days       1  2 3 4 ... 400 
msno    features   
B     num_50  0  0 0 0 ...  0 
        num_100 0  0 0 0 ...  0 
C     num_50  0  0 0 0 ...  0 
        num_100 0  0 1 0 ...  0 
A     num_50  0  0 0 0 ...  0 
        num_100 0  0 0 0 ...  2 

1から400までの列を追加し、0で列を埋めたいと思っています。

誰かに私にそのことを教えてもらえますか?

答えて

0

reindex

df.columns=df.columns.droplevel() 
df.reindex(columns=list(range(1,20))).fillna(0) 

Out[414]: 
days   1 2 3 4 5 6 7 8 9 10 11 12 13 \ 
msno features                 
A num_100 0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    num_50 0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
B num_100 0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    num_50 0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
C num_100 0 0.0 1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    num_50 0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
days   14 15 16 17 18 19 
msno features         
A num_100 0.0 0.0 0.0 0.0 0.0 0.0 
    num_50 0.0 0.0 0.0 0.0 0.0 0.0 
B num_100 0.0 0.0 0.0 0.0 0.0 0.0 
    num_50 0.0 0.0 0.0 0.0 0.0 0.0 
C num_100 0.0 0.0 0.0 0.0 0.0 0.0 
    num_50 0.0 0.0 0.0 0.0 0.0 0.0 
+0

を使用することにより、私は、私はまだ価値を維持するために必要なすべての値は0になりたくありません。このデータフレームに「1」と「2」が存在することがわかります –

+0

@AaronWuチェック列3、1つだけあります。すべてを再インデックスしませんでした。リスト(範囲(1,20))からリスト範囲(1,400)) – Wen

+0

@AaronWuはあなたがどのように動作しているかわからないようですが、あなたはいくつかの質問をしました。 – Wen

関連する問題