python - 根据条件融化数据框

标签 python pandas

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/

相关文章:

python - 处理大量文件的错误代码逻辑

python - 计算一定数量的列之间的大型数据帧的成对相关性

Python 将网站表数据读取到 Dataframe 中

python - pandas read_gbq 返回 httplib.ResponseNotReady

python - 如何在满足管道中的条件后立即停止所有蜘蛛和引擎?

python - 如何停止 PyDev 上正在运行的程序

python - 使用经过训练的 ConvNet 的参数预测图像类别

python - 日期时间多索引上的 IndexSlice 不工作,但似乎与正常工作的玩具等效物没有什么不同

python - 根据python中的条件更新多个列值

python - 带有排序列表的 Pandas 列的名字