Ich möchte das dtype
s mehrerer Spalten festlegen pd.Dataframe
(Ich habe eine Datei, die ich manuell in eine Liste von Listen analysieren musste, da die Datei nicht zugänglich war pd.read_csv
).
import pandas as pd
print pd.DataFrame([['a','1'],['b','2']],
dtype={'x':'object','y':'int'},
columns=['x','y'])
Ich bekomme
ValueError: entry not a 2- or 3- tuple
Die einzige Möglichkeit, sie festzulegen, besteht darin, jede Spaltenvariable zu durchlaufen und mit neu zu formulieren astype
.
dtypes = {'x':'object','y':'int'}
mydata = pd.DataFrame([['a','1'],['b','2']],
columns=['x','y'])
for c in mydata.columns:
mydata[c] = mydata[c].astype(dtypes[c])
print mydata['y'].dtype #=> int64
Gibt es einen besseren Weg?
df = pd.DataFrame([['a','1'],['b','2']], dtype='int', columns=['x','y'])
"funktioniert" ... aber: s