我有一個df,我想使用2個列(sample,var),以便來自var列的唯一值成爲索引和來自樣本的唯一值其他列成爲新的列名稱。然後我想用'真'來填充表格,無論哪裏有一行,原始df中給定的樣本和變量共同出現,並且na與樣本和變量不同時出現的na一起填充。在pandas中使用列值和標題和自動填充表
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-標頭中返回一個表,樣品仍是這樣的:
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: []
我也試過這樣:
df_all['MUT']=True
pivot = df_all.pivot(index='VAR', columns='SAMPLE', values='MUT').stack(dropna=False)
print(pivot.head(20))
這返回了正確的信息,但樣品仍在列中,而不是我預期的列名。
目標是最終制作一個熱圖,所以如果有更好的解決方案來實現這一點,那也沒關係。我認爲答案很簡單,我錯過了,但我嘗試過搜索並找不到它。我可能可以使用迭代來解決這個問題,但我真的在尋找一種矢量/熊貓類型的方法。非常感謝。
這是一個非常有用的,很好的解釋答案,但相比其他2級的解決方案是相當複雜的。儘管刪除重複是一個很大的額外想法。非常感謝 – user3062260