У вас есть строковые объекты Python 3, у которых нет метода .decode()
.Декодирование - это то, что вы делаете для байтовых значений, чтобы получить строки, строки, которые вы бы кодировали .Похоже, вы нашли какой-то специфический для Python 2 код, который выполняет преобразование, которое несовместимо.
Чтобы преобразовать данные Base64 в двоичные, а затем в шестнадцатеричные, используйте модуль base64
, а затемвызовите метод .hex()
:
import base64
df['raw'].apply(lambda b: base64.b64decode(b).hex())
Демо:
>>> import pandas as pd
>>> import base64
>>> df = pd.DataFrame({'raw': '''\
... AIgIm/H/SfwAR2IBAgMgAgIAAQMCAFoAcQAAAAAAAAFxAAAAAAAAA4gAAABiAF8AABI=
... AIgIm/v/SfsAUNwBAgMgAgIAEgMCAEIAcQAAAAAAAAFxAAAAAAAAA4gAAABkAF8AAAw=
... AIgIm/z/Sg4AVroBAgMgAgIA6wMCAFgAcQAAAAAAAAFxAAAAAAAAA4geAAFEADoAGQs=
... '''}, index=[0, 1, 2])
>>> df['raw'].apply(lambda b: base64.b64decode(b).hex())
0 0088089bf1ff49fc00476201020320020200010302005a...
1 0088089bf1ff49fc00476201020320020200010302005a...
2 0088089bf1ff49fc00476201020320020200010302005a...
Name: raw, dtype: object