d = {'key': [1,2,3], 'a': [True,True, False], 'b': [False,False,True]}
df = pd.DataFrame(d)
当前的熔化函数是:
df2 = df.melt(id_vars=['key'], var_name = 'letter', value_name = 'Bool')
df2 = df2.query('Bool == True')
有没有办法将“True”条件合并到熔化函数中。当我继续向 df 添加条目并且我有数百列时,我认为仅提取我需要的值而不是熔化整个 df 然后进行过滤的成本要低得多。有什么想法吗?
最佳答案
使用 pd.melt 代替。最终用 NaN 和 dropna() 替换 False 的因素。
pd.melt(df.replace(False, np.nan), id_vars=['key'],var_name = 'letter', value_name = 'Bool').dropna()
key letter Bool
0 1 a True
1 2 a True
5 3 b True
关于python - 根据条件融化数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70087904/