gpt4 book ai didi

python - 在 Pandas 中组合 2 个 bool 列

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:39 24 4
gpt4 key购买 nike

我有一个带有几个标志列的。(3 个机构对银行进行评级;所有案例相互排斥 => 一次只有一个标志是 ON。如果 flag1 有一个值,flag2 和 flag3 不会有什么值(value)等等)

  BankName     Flag1       Flag2    Flag3  
B1 TRUE
B2 FALSE
B3 TRUE
B4 FALSE
B5 TRUE

等等。

我想要的:

  BankName     Flag1       Flag2    Flag3   Anyflag  
B1 TRUE TRUE
B2 FALSE FALSE
B3 TRUE TRUE
B4 FALSE FALSE
B5 TRUE TRUE

基本上我希望将所有标志组合在一个单独的列中。我已经尝试过merge、concat,但它们似乎不适用于 bool 列。

尝试过:

[IN]:
df['Any flag']=pd.concat(df['Flag1'], df['Flag2'], df['Flag3'])
[OUT]
TypeError: first argument must be an iterable of pandas objects, you
passed an object of type "Series"
[IN]:
df['Any flag']=pd.concat(df['Flag1'], df['Flag2'], df['Flag3'], axis=0)
[OUT]
TypeError: concat() got multiple values for argument 'axis'

请帮忙。

最佳答案

使用 any(axis='columns')

例如:

data = [ ['B1', True, '', ''],
['B2', '', '', False],
['B3', '', True, ''],
['B4', False, '', ''],
['B5','', True, '']]

df = pd.DataFrame(data, columns=['BankName', 'Flag1', 'Flag2', 'Flag3'])
df["Anyflag"] = df[['Flag1', 'Flag2', 'Flag3']].any(axis='columns')
print(df)

输出:

  BankName  Flag1 Flag2  Flag3  Anyflag
0 B1 True True
1 B2 False False
2 B3 True True
3 B4 False False
4 B5 True True

关于python - 在 Pandas 中组合 2 个 bool 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58184879/

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