ich die dtype
s mehrerer Spalten in pd.Dataframe
(Ich habe eine Datei, die ich je hatte, um manuell in eine Liste von Listen zu analysieren, wie die Datei für pd.read_csv
nicht zugänglich war) festlegen möchtenAssign Pandas Datenrahmen Spalte dtypes
import pandas as pd
print pd.DataFrame([['a','1'],['b','2']],
dtype={'x':'object','y':'int'},
columns=['x','y'])
ich
ValueError: entry not a 2- or 3- tuple
Die einzige Art, wie ich sie durch Schleifen durch jede Spalte Variable und Neufassung mit astype
einstellen.
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?
Dies wäre vielleicht ein gutes [Bug/Feature Request] (https://github.com/pydata/pandas/issues/new), derzeit bin ich nicht sicher, was dtype arg (Sie können tut übergeben Sie es einen Skalar, aber es ist nicht streng) ... –
FYI: 'df = pd.DataFrame ([['a', '1'], ['b', '2']], dtype = 'int' , columns = ['x', 'y']) '" funktioniert "... aber: s –
Ja," funktioniert "in der Tat; unvorhersehbar ... – hatmatrix