web-dev-qa-db-fra.com

Comment convertir les valeurs true true dans le cadre de données en tant que 1 pour true et pour false

Comment convertir des valeurs true true dans Dataframe en tant que 1 pour true et 0 pour false

COL1  COL2 COL3  COL4
12   TRUE  14    FALSE
13   FALSE  13    TRUE


OUTPUT
12   1  14 0
13   0  13 1
12
Ashim Sinha

Premièrement, si vous avez les chaînes 'TRUE' et 'FALSE', vous pouvez les convertir en valeurs booléennes True et False telles que celles-ci:

df['COL2'] == 'TRUE'

Cela vous donne une colonne bool. Vous pouvez utiliser astype pour convertir en int (car bool est un type intégral, où True signifie 1 et False signifie 0, ce qui est exactement ce que vous voulez):

(df['COL2'] == 'TRUE').astype(int)

Pour remplacer l'ancienne colonne string par cette nouvelle colonne int, affectez-la simplement:

df['COL2'] = (df['COL2'] == 'TRUE').astype(int)

Et pour le faire sur deux colonnes en une, indexez simplement avec une liste de colonnes:

df[['COL2', 'COL4']] = (df[['COL2', 'COL4']] == 'TRUE').astype(int)
15
abarnert

Simplement faire ceci:

df[["col2", "col4"]] *= 1

Python considère les valeurs booléennes (True, False) comme (1, 0) respectivement . Vous pouvez donc les utiliser comme des nombres.

6

Vous pouvez convertir le type de chaque colonne comme

In [7]: df[['COL2', 'COL4']] = df[['COL2', 'COL4']].astype(int)

In [8]: df
Out[8]:
   COL1  COL2  COL3  COL4
0    12     1    14     0
1    13     0    13     1

Même df[['COL2', 'COL4']].astype(float) fonctionne pour la conversion.

1
Zero

Vous pouvez également essayer ceci pour convertir les valeurs booléennes telles que True ou False en 1 ou 0.

    In [2] : df['attribute_name']
    Out[2] : 0 True
             1 False
             2 True
             3 True

Maintenant, importez ces paquets:

    In [3] : from sklearn import preprocessing
             lab_enc = preprocessing.LabelEncoder()
             lab_enc.fit(df['attribute_name'])
             variable = lab_enc.transform(df['attribute_name'])
             df['variable'] = variable
             print df['variable']
    Out[4] : 0 1
             1 0
             2 1
             3 1

Si vous voulez rétablir les valeurs de 0 ou 1 à Faux ou Vrai, vous pouvez utiliser lab_encoder.inverse_transform ([0,1]), ce qui donne le résultat de 0 ou 1 à Faux ou Vrai.

0
Naveen Reddy

Vous pouvez convertir les valeurs 'True' et 'False' (strings) en 1 et 0 respectivement pour un column spécifique (ici nous choisissons la 3ème colonne) comme suit.

from pandas import DataFrame as df
data = df(data) # where data contains your data as rows and columns
                # and it is converted to dataframe using pandas (ignore if already df)
for i in range(len(data[3])):
    if data[3][i] == 'TRUE':
        data[3][i] = 1
    Elif data[3][i] == 'FALSE':
        data[3][i] = 0
    else:
        pass

Cette méthode peut être utilisée pour comparer une valeur ou une chaîne et remplacer cet emplacement par la valeur ou la chaîne requise. 

0
Anon George