У меня очень большой фреймворк данных, который я бы хотел избежать итерации через каждую строку и хочу преобразовать весь столбец из шестнадцатеричной строки в int. Он не обрабатывает строку правильно с помощью astype, но не имеет проблем с одной записью. Есть ли способ сказать astype, что тип данных является базой 16?convert pandas dataframe column from hex string to int
IN:
import pandas as pd
df = pd.DataFrame(['1C8','0C3'], columns=['Command0'])
df['Command0'].astype(int)
OUT:
ValueError: invalid literal for int() with base10: '1C8'
Это работает, но вы хотите избежать итерации строк.
for index, row in df.iterrows():
print(row['Command0'])
Я читаю это из CSV pd.read_csv(open_csv, nrows=20)
так что если есть способ, чтобы прочитать его и явно сказать ему, что формат, то это было бы еще лучше!
Спасибо за ответ. Я также обнаружил, что до тех пор, пока вы явно укажете ему базу в случае конвертеров, вам не нужно применять «0x». 'df = pd.read_csv (open_csv, nrows = 20, converters = {'Command0': lambda x: int (x, 16)})' – kaminsknator