Dans cet article pandas 0.18.J'utilise 1.
Si vous ne spécifiez rien pour dtype, le type sera déterminé sans autorisation. Par exemple, s'il existe les données délimitées par des tabulations suivantes
data_1.txt
id x01 x02 x03 x04 x05 x06 x07 x08 x09 x10
0001 0.54 0.54 0.85 0.79 0.54 0.36 0.28 0.52 0.21 0.49
0002 0.72 0.68 0.77 0.69 0.07 na 0.29 0.42 0.32 0.51
0003 0.68 0.99 0.19 0.16 0.31 0.76 0.57 0.08 0.07 0.98
0004 0.98 na 0.49 0.47 0.09 0.52 0.42 0.35 0.83 0.64
0005 0.37 0.35 0.99 0.88 0.81 0.46 0.57 0.47 0.06 0.55
# coding: UTF-8
import pandas as pd
df = pd.read_csv('data_1.txt', header = 0, sep = '\t', na_values = 'na')
print df
id x01 x02 x03 x04 x05 x06 x07 x08 x09 x10
0 1 0.54 0.54 0.85 0.79 0.54 0.36 0.28 0.52 0.21 0.49
1 2 0.72 0.68 0.77 0.69 0.07 NaN 0.29 0.42 0.32 0.51
2 3 0.68 0.99 0.19 0.16 0.31 0.76 0.57 0.08 0.07 0.98
3 4 0.98 NaN 0.49 0.47 0.09 0.52 0.42 0.35 0.83 0.64
4 5 0.37 0.35 0.99 0.88 0.81 0.46 0.57 0.47 0.06 0.55
Si vous ne spécifiez pas le type, ce sera comme ci-dessus et l'identifiant sera zéro. Lorsque je vérifie le type de données id dans df.dtypes, il est int.
Dans ce cas
df = pd.read_csv('data_1.txt', header = 0, sep = '\t', na_values = 'na',
dtype = {'id':'object', 'x01':'float', 'x02':'float','x03':'float','x04':'float','x05':'float','x06':'float',
'x07':'float','x08':'float','x09':'float','x10':'float'})
print df
id x01 x02 x03 x04 x05 x06 x07 x08 x09 x10
0 0001 0.54 0.54 0.85 0.79 0.54 0.36 0.28 0.52 0.21 0.49
1 0002 0.72 0.68 0.77 0.69 0.07 NaN 0.29 0.42 0.32 0.51
2 0003 0.68 0.99 0.19 0.16 0.31 0.76 0.57 0.08 0.07 0.98
3 0004 0.98 NaN 0.49 0.47 0.09 0.52 0.42 0.35 0.83 0.64
4 0005 0.37 0.35 0.99 0.88 0.81 0.46 0.57 0.47 0.06 0.55
De cette façon, vous pouvez conserver la forme d'origine en spécifiant dtype. C'est col Classes à R. Je pense que les données sont lues plus rapidement lorsque dtype est spécifié.
Vous pouvez également tout lire en tant qu'objet pour le moment, puis modifier uniquement les parties nécessaires ultérieurement.
#Au début, tout lire avec objet
df = pd.read_csv('data_1.txt', header = 0, sep = '\t', na_values = 'na', dtype = 'object')
var_lst = ['x01','x02','x03','x04','x05','x06','x07','x08','x09','x10']
df[var_lst] = df[var_lst].astype(float) #Changer le type de données en float
Recommended Posts