In diesem Artikel Pandas 0.18.Ich benutze 1.
Wenn Sie für dtype nichts angeben, wird der Typ ohne Erlaubnis bestimmt. Zum Beispiel, wenn die folgenden tabulatorgetrennten Daten vorhanden sind
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
Wenn Sie den Typ nicht angeben, ist er wie oben und die ID ist Null. Wenn ich den ID-Datentyp in df.dtypes überprüfe, ist es int.
In einem solchen Fall
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
Auf diese Weise können Sie die ursprüngliche Form beibehalten, indem Sie dtype angeben. Es ist col Klassen in R. Ich habe das Gefühl, dass die Daten schneller gelesen werden, wenn dtype angegeben wird.
Sie können vorerst auch alles als Objekt lesen und später nur die notwendigen Teile ändern.
#Lesen Sie zuerst alles mit Objekt
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) #Ändern Sie den Datentyp in float
Recommended Posts