1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Mesclando duas colunas em uma nova coluna de nome 'Classe' (dataframe Pandas)

Discussion in 'Technology' started by Ed S, Oct 8, 2018.

  1. Ed S

    Ed S Guest

    df_downsampled[df_downsampled['attack_cat']=="DoS"]


    Pega todo o dataframe 'df_downsampled' onde a coluna 'attack_cat' tem o valor DoS.

    Dataset: https://www.unsw.adfa.edu.au/unsw-canberra-cyber/cybersecurity/ADFA-NB15-Datasets/

    colunas = ['srcip','sport','dstip','dsport','proto','state','dur','sbytes', 'dbytes','sttl','dttl',
    'sloss','dloss','service','Sload','Dload','Spkts','Dpkts','swin','dwin','stcpb','dtcpb',

    'smeansz','dmeansz','trans_depth','res_bdy_len','Sjit','Djit','Stime','Ltime','Sintpkt',

    'Dintpkt','tcprtt','synack','ackdat','is_sm_ips_ports','ct_state_ttl','ct_flw_http_mthd',
    'is_ftp_login','ct_ftp_cmd','ct_srv_src','ct_srv_dst','ct_dst_ltm','ct_src_ltm','ct_src_dport_ltm',
    'ct_dst_sport_ltm','ct_dst_src_ltm','attack_cat','Label' ]

    UNSW1 = pd.read_csv('/home/users/p02543/ddos/UNSW-NB15_1.csv',dtype={"srcip":eek:bject ,},names = colunas)

    UNSW2= pd.read_csv('/home/users/p02543/ddos/UNSW-NB15_2.csv',dtype={"srcip":eek:bject ,},names = colunas)

    UNSW3= pd.read_csv('/home/users/p02543/ddos/UNSW-NB15_3.csv',dtype={"srcip":eek:bject ,},names = colunas)

    UNSW4= pd.read_csv('/home/users/p02543/ddos/UNSW-NB15_4.csv',dtype={"srcip":eek:bject ,},names = colunas)


    UNSW = pd.concat([UNSW1,UNSW2,UNSW3,UNSW4])

    previsores = UNSW.iloc[:,UNSW.columns.isin(('Sload','Dload',
    'Spkts','Dpkts','swin','dwin','smeansz','dmeansz',
    'Sjit','Djit','Sintpkt','Dintpkt','tcprtt','synack','ackdat','ct_srv_src','ct_srv_dst','ct_dst_ltm',
    'ct_src_ltm','ct_src_dport_ltm','ct_dst_sport_ltm','ct_dst_src_ltm')) ].values# atributos previsores


    Existem duas colunas que quero "mesclar":

    uma chama-se "Label" e tem valor 1 quando é ataque, e 0 em caso contrário.

    Na coluna 'attack_cat' me interessa apenas quando seu valor é 'DoS' (e nesta caso, o valor da coluna 'Label' é 1)

    Objetivo:

    Criar uma nova coluna de nome "Classe" que:

    Pegue APENAS os valores da coluna 'attack_cat' quando seu valor for 'DoS' (e o valor de' Label' for 1)

    (existem outros valores em 'attack_cat' que nao me interessam)

    Pegue TODOS os valores da coluna 'Label ' quando for 0 (nao ataque)

    Como fazer?

    Login To add answer/comment
     

Share This Page