gpt4 book ai didi

python - 获取在 Pandas 数据框中为真的列的名称

转载 作者:行者123 更新时间:2023-12-03 20:02:34 25 4
gpt4 key购买 nike

假设我有以下 Pandas 数据框:

df = pd.DataFrame({'id': [1,2,3,4,5], 'a': [True, True, False, True, False], 'b': [False, True, False, False, True], 'c': [False, False, True, True, True]})

id a b c
1 True False False
2 True True False
3 False False True
4 True False True
5 False True True
我想,对于每个 id,获取 True 列的名称,最终的 dict 将是:
{1: ['a'], 2: ['a', 'b'], 3: ['c'], 4: ['a', 'c'], 5: ['b', 'c']}
我认为也许可以通过用列名替换 True 并将其与 list 聚合来使用组。但我想不出解决办法。
编辑:如果 id 全部为 false,则只返回一个空列表。

最佳答案

试试 melt然后 groupby

out_d = df.melt('id').query('value').groupby('id')['variable'].agg(list).to_dict()
Out[127]: {1: ['a'], 2: ['a', 'b'], 3: ['c'], 4: ['a', 'c'], 5: ['b', 'c']}

关于python - 获取在 Pandas 数据框中为真的列的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65029418/

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