gpt4 book ai didi

python - 在 pandas 中使用列值和标题并自动填充表

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:16 25 4
gpt4 key购买 nike

我有一个 df,我想使用其中的 2 个列 (sample, var),这样来自 var 列的唯一值成为索引,来自 sample other col 的唯一值成为新的列名。然后,我想在原始 df 中有给定样本和 var 共同出现的行的任何地方用“True”填充表,并在样本和 var 没有共同出现的地方用 na 填充。

sample, var
s1, v1
s1, v2
s2, v1
s2, v3

会变成:

    s1, s2
v1, T, T
v2, T, na
v3, na, T

如果已经有一个问题可以回答这个问题,我深表歉意。我是 Pandas 的新手,不确定要搜索的技术词。我试过 this possible anser但它对我不起作用,返回的表格中的样本仍在一列中,而不是像这样的列标题:

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))

这返回了正确的信息,但样本仍在列中,而不是我预期的列名称。

目的是最终制作一个热图,所以如果有更好的解决方案来实现这一点,那也很好。我认为答案很简单,但我错过了,但我尝试搜索但找不到。我可能可以使用迭代来解决这个问题,但我真的在寻找一种矢量/ Pandas 类型的方法。非常感谢。

最佳答案

我会推荐pd.crosstab

pd.crosstab(df['var'],df['sample']).replace({1:'T',0:np.nan})

sample s1 s2
var
v1 T T
v2 T NaN
v3 NaN T

关于python - 在 pandas 中使用列值和标题并自动填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com