Я хочу заменить строковый логический тип, присутствующий внутри столбца, на фактические логические значения.
kdf = pd.DataFrame(data={'col1' : [True, 'True', np.nan], 'dt': [datetime.now(), ' 2018-12-12', '2019-12-12'], 'bool':
[False, True, True], 'bnan': [False, True, np.nan]})
поэтому здесь я хочу преобразовать True
(индекс 1 для col1
) в фактический логический типTrue
.Я сделал следующее:
kdf.loc[kdf['col1'].str.contains('true', na=False, case=False)] = True
kdf.loc[kdf['col1'].str.contains('false', na=False, case=False)] = False
, который преобразует значения столбца в фактический тип, но мне нужно создать функцию, которая принимает только столбец df, выполняет внутреннюю замену и возвращает измененный столбец.(как col.fillna
).Обратите внимание, что нам не разрешено передавать весь df в эту функцию.Так что я не могу использовать df.loc
.
Также я немного беспокоюсь о производительности, есть ли другой способ?