konvertieren pandas dataframe Spalte hex string zu int
Ich habe eine sehr große dataframe, dass würde ich gerne vermeiden, Durchlaufen jede einzelne Zeile und möchten, konvertieren Sie die gesamte Spalte aus hex string zu int. Es nicht verarbeiten den string korrekt mit astype hat aber keine Probleme mit einem einzigen Eintrag. Gibt es eine Möglichkeit zu sagen, astype der Datentyp Basis 16?
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'
Funktioniert dies aber vermeiden möchten, Zeile iteration.
for index, row in df.iterrows():
print(row['Command0'])
Lese ich diese aus einer CSV - pd.read_csv(open_csv, nrows=20)
also, wenn es einen Weg gibt, es zu Lesen und explizit sagen, was das format ist, dann wäre das noch besser!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie
apply
.Und Sie können dies tun, mit
pd.read_csv
Anruf mit derconverters
parameter:df = pd.read_csv(open_csv, nrows=20, converters = {'Command0': lambda x: int(x,16)})
Können Sie
apply
als pro @Andrew ' s Lösung, aberlambda
ist nicht notwendig und erhöht den Verarbeitungsaufwand. Verwenden Sie stattdessenapply
mit ein keyword-argument:Mit
pd.read_csv
verwenden, können Siefunctools.partial
: