私はdfを持っていますが、var列からの一意の値がインデックスとサンプルの一意の値になるように2つの列(sample、var)他の列は新しい列名になります。与えられたサンプルとvarがオリジナルのdfで共起していて、サンプルとvarが共起していないnaを持つ行があったところで、テーブルを 'True'に設定したいと思います。パンダの列の値とヘッダーとオートポピュレートテーブルを使用
sample, var
s1, v1
s1, v2
s2, v1
s2, v3
はなる:
s1, s2
v1, T, T
v2, T, na
v3, na, T
すでにこれを答える質問がすでに存在する場合、私はお詫び申し上げます。私はパンダには新しく、検索する技術用語が不明です。私はthis possible anserをしようとしたが、それは私のために動作しませんでしたし、このようCOL-ヘッダ列ではなくて、まだサンプルを使用してテーブルを返しました:
df_all['MUT']=True
pivot = df_all.pivot(index='VAR', columns='SAMPLE', values='MUT').stack(dropna=False)
print(pivot.head(20))
この:私もこれを試してみました
pivot = df_all.pivot(index='VAR', columns='SAMPLE').stack(dropna=False)
print(pivot.head(20))
var, sample
v1, s1
v1, s2
v2, s1
v3, s2
Empty dataframe
Columns: []
Index: []
正しい情報が返されましたが、サンプルは、私が期待したように列の名前ではなく、列に残っていました。
目的はヒートマップを最終的に作成することです。これを達成するためのより良い解決策がある場合は、それも問題ありません。答えは私が逃したシンプルなものだと思っていますが、私は検索しようとしましたが見つかりませんでした。私はおそらくこれを繰り返しを使用して解決することができますが、実際にベクトル/パンダ型のアプローチを探しています。どうもありがとう。あなたはその後、unstack
でset_index
によって再構築、新しいTrue
列にassign
を使用することができます
お勧めします。しかし、重複ドロップは素晴らしい余分な考えです。多くのありがとう – user3062260