唯一のパンダで選択した列の転置を取得する方法はありますか?

s_khan92:

私は私が詳細350以上の列を持つ大規模なデータセットを持っていると私は列と行と列の値にその350個の列を変換したいです。ユーザーがブランドにランキング「1-10」を提供し、私はcoluumnsとして(1-10)をランキング表示したいです。ここに私のDFがどのように見えるかです:

id          Gender       Age            BMW         Audi         VW         Mercedes
1             M          20              3           1           4            2
2             F          50              1           2           3            4
3             F          25              2           1           4            3   

そして私は、目的の列のように、このようにそれを変更したいと思います。

id          Gender       Age            Rank1         Rank2           Rank3          Rank4      
1             M          20              Audi        Mercedes          BMW            VW      
2             F          50              BMW          Audi             VW             Mercedes
3             F          25              Audi         BMW              Mercedes       VW        

このように、私は...非常に多くの列のいずれかのソリューションを取り除くことができますか?

anky_91:

あなたのことができmelt+pivot

idx = ['id','Gender','Age']
m = df.melt(idx).pivot_table(index=idx,columns='value',values='variable',aggfunc='first')
out = m.add_prefix('Rank').reset_index(idx).rename_axis(index=None,columns=None)

print(out)

   id Gender  Age Rank1     Rank2     Rank3     Rank4
0   1      M   20  Audi  Mercedes       BMW        VW
1   2      F   50   BMW      Audi        VW  Mercedes
2   3      F   25  Audi       BMW  Mercedes        VW

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=392146&siteId=1