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
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)
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.
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.
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.
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.