gpt4 book ai didi

python - Pandas :根据条件展平列?

转载 作者:太空狗 更新时间:2023-10-30 01:57:09 26 4
gpt4 key购买 nike

我正在尝试展平行并保留我想要的行中的信息。

我有什么:

id  var1  var2 var3
1 Y N Y
1 N Y
2 Y N
2 N Y N
2 Y N Y

我想要什么:

id  var1  var2 var3
1 Y N Y
2 Y Y Y

本质上,它会检查是否有 Y/N,并始终优先考虑 Y。还有比 var1、var2、var3 多的列;所以我想要一些更通用的东西,这样我也可以应用于其他专栏。

最佳答案

让我们试试,您可以使用 groupbysum 来充当 OR,因此“给予 Y 优先权”:

df1 = df.replace({'Y':True,'N':False})

df_out = (df1.groupby('id').sum(skipna=False)
.astype(bool)
.replace({True:'Y',False:'N'})
.reset_index())

print(df_out)

输出:

   id var1 var2 var3
0 1 Y N Y
1 2 Y Y Y

关于python - Pandas :根据条件展平列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43870231/

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