Je veux définir le dtype
s de plusieurs colonnes dans pd.Dataframe
(j'ai un fichier que j'ai dû analyser manuellement dans une liste de listes, car le fichier ne pouvait pas être utilisé pd.read_csv
)
import pandas as pd
print pd.DataFrame([['a','1'],['b','2']],
dtype={'x':'object','y':'int'},
columns=['x','y'])
Je reçois
ValueError: entry not a 2- or 3- tuple
La seule façon de les définir est de parcourir chaque variable de colonne et de refondre avec 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
Y a-t-il un meilleur moyen?
df = pd.DataFrame([['a','1'],['b','2']], dtype='int', columns=['x','y'])
"works" ... mais: s