Объедините 2 логических столбца в пандах - PullRequest
1 голос
/ 01 октября 2019

У меня есть таблица с несколькими столбцами флагов. (Банк с 3 агентствами; все случаи взаимоисключающие => в одно время был включен только один флаг. Если flag1 имеет значение, flag2 и flag3 не будут иметьлюбое значение и т. д.)

  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

По сути, я хочу объединить флаги в отдельном столбце,Я попытался объединить, конкатировать, и они не работают на логических столбцах.

Попытка:

[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'

Пожалуйста, помогите.

1 Ответ

1 голос
/ 01 октября 2019

Использование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...