gpt4 book ai didi

python - Pandas 将 True 列转换为列值

转载 作者:行者123 更新时间:2023-12-05 01:58:06 25 4
gpt4 key购买 nike

我有下表的 bool 值:

pd.DataFrame(data={'val1': [True, False, False, True], 
'val2': [False, True, False, True],
'val3': [True, True, False, True],
'val4': [True, False, True, False],
'val5': [True, True, False, False],
'val6': [False, False, True, True]},
index=pd.Series([1, 2, 3, 4], name='index'))
<表类="s-表"><头>索引val1val2val3val4val5val6<正文>1正确错误正确正确正确错误2错误正确正确错误正确错误3错误错误错误正确错误正确4正确正确正确错误错误正确

我想创建一个具有相同索引的新数据框,但每一行都有前一列的前三个 True 列名称。

<表类="s-表"><头>索引真值1真值2真值3<正文>1val1val3val42val2val3val53val4val6NaN4val1val2val3

如果一行的真值少于三个,则新数据框将具有空值。

最佳答案

尝试使用 dot ,然后使用 split

#df = df.set_index('index')
out = df.dot(df.columns + ',').str[:-1].str.split(',',expand=True).iloc[:,:3]
out
Out[258]:
0 1 2
index
1 val1 val3 val4
2 val2 val3 val5
3 val4 val6 None
4 val1 val2 val3

关于python - Pandas 将 True 列转换为列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68716715/

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