gpt4 book ai didi

python - 检查列是否在列表中,如果没有则删除并将值添加到新列

转载 作者:行者123 更新时间:2023-12-02 08:58:42 25 4
gpt4 key购买 nike

我有一个这样的数据库:

df = pd.DataFrame( { 
"A" : [0,0,1,1,0,1] ,
"B" : [1,0,0,1,1,0],
"C" : [0,0,0,1,1,0],
"D" : [1,1,0,0,0,1]} )

看起来像这样:

    A   B   C   D
0 0 1 0 1
1 0 0 0 1
2 1 0 0 0
3 1 1 1 0
4 0 1 1 0
5 1 0 0 1

我有一个希望保留的列列表allowed_columns = ["A","B"]。这意味着我们摆脱了CD。但是,当删除列时,如果有值 1,我想在新列中lost 中注明。这就是我想要实现的目标:

    A   B   lost    
0 0 1 1
1 0 0 1
2 1 0 0
3 1 1 1
4 0 1 1
5 1 0 1

为了简化问题,我们可以假设CD不能同时具有值​​1。我怎样才能实现这个目标?

最佳答案

取允许列的子集,然后使用 df.columns.difference 取您删除的所有内容的最大值

df = (df[allowed_columns]
.assign(lost=df[df.columns.difference(allowed_columns)].max(1)))

关于python - 检查列是否在列表中,如果没有则删除并将值添加到新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61389400/

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