X1 X2 X3 X4 X5 X6 X7 X8 0 0.003 -0.037 1.300 -17.0 0.000154 282.0 0.0019 300.0 1 0.003 -0.036 0.100 -17.0 0.000142 281.0 0.0024 300.0 2 0.003 -0.036 0.120 -17.0 0.000148 281.0 0.0170 300.0 ・・・ 27 0.003 -0.035 -1.100 -18.0 0.000192 287.0 0.0770 300.0 28 0.003 -0.030 -1.100 -13.0 0.000073 268.0 0.2800 300.0 29 0.003 -0.033 0.920 -16.0 0.000118 278.0 0.1300 300.0
import pandas as pd getFN='sample3_1_1.csv' readData=pd.read_csv(getFN) print (readData)
X1 X2 X3 X4 X5 X6 X7 X8 0 0.003 -0.037 1.300 -17.0 0.000154 282.0 0.0019 300.0 1 0.003 -0.036 0.100 -17.0 0.000142 281.0 0.0024 300.0 2 0.003 -0.036 0.120 -17.0 0.000148 281.0 0.0170 300.0 ・・・ 27 0.003 -0.035 -1.100 -18.0 0.000192 287.0 0.0770 300.0 28 0.003 -0.030 -1.100 -13.0 0.000073 268.0 0.2800 300.0 29 0.003 -0.033 0.920 -16.0 0.000118 278.0 0.1300 300.0
下図のようなデータ形式のcsvファイルを読み込むにあたって、下記2点を行ったうえでファイルの中身を取得します。
サンプルコードは以下になります。
import pandas as pd getFN='sample3_1_2_1.csv' #引数にcomment,header追加 readData=pd.read_csv(getFN,comment='#',header=[0,1]) print (readData)
引数 | 指定内容 |
---|---|
comment | 指定した一文字(今回は'#')から始まる文字列を無視します。 |
header | 指定した行番号をヘッダとして扱います。commentで無視された行は除外してカウントします。 一行のみ:header=0、複数行:header=[0,1] |
X1 X2 X3 X4 X5 X6 X7 X8 a b c d e f g h 0 0.003 -0.037 1.300 -17.0 0.000154 282.0 0.0019 300.0 1 0.003 -0.036 0.100 -17.0 0.000142 281.0 0.0024 300.0 2 0.003 -0.036 0.120 -17.0 0.000148 281.0 0.0170 300.0 ・・・ 27 0.003 -0.035 -1.100 -18.0 0.000192 287.0 0.0770 300.0 28 0.003 -0.030 -1.100 -13.0 0.000073 268.0 0.2800 300.0 29 0.003 -0.033 0.920 -16.0 0.000118 278.0 0.1300 300.0
import pandas as pd getFN='sample3_1_2_2.csv' #引数にencodingを追加 readData=pd.read_csv(getFN,comment='#',header=[0,1],encoding='shift_jis') print (readData)
X1 X2 X3 X4 X5 X6 X7 X8 エックス1 エックス2 エックス3 エックス4 エックス5 エックス6 エックス7 エックス8 0 0.003 -0.037 1.300 -17.0 0.000154 282.0 0.0019 300.0 1 0.003 -0.036 0.100 -17.0 0.000142 281.0 0.0024 300.0 2 0.003 -0.036 0.120 -17.0 0.000148 281.0 0.0170 300.0 ・・・ 27 0.003 -0.035 -1.100 -18.0 0.000192 287.0 0.0770 300.0 28 0.003 -0.030 -1.100 -13.0 0.000073 268.0 0.2800 300.0 29 0.003 -0.033 0.920 -16.0 0.000118 278.0 0.1300 300.0
import pandas as pd getFN='sample3_1_2_1.csv' #引数にdtypeを追加 readData=pd.read_csv(getFN,comment='#',header=[0,1],dtype={'X4':int,'X6':int,'X8':int}) #readData=pd.read_csv(getFN,comment='#',header=[0,1],dtype={3:int,5:int,7:int}) print (readData)
X1 X2 X3 X4 X5 X6 X7 X8 a b c d e f g h 0 0.003 -0.037 1.300 -17 0.000154 282 0.0019 300 1 0.003 -0.036 0.100 -17 0.000142 281 0.0024 300 2 0.003 -0.036 0.120 -17 0.000148 281 0.0170 300 ・・・ 27 0.003 -0.035 -1.100 -18 0.000192 287 0.0770 300 28 0.003 -0.030 -1.100 -13 0.000073 268 0.2800 300 29 0.003 -0.033 0.920 -16 0.000118 278 0.1300 300
import pandas as pd getFN='sample3_1_1.csv' readData=pd.read_csv(getFN,skiprows=[1,2,5],nrows=5,usecols=['X1','X2','X4']) #readData=pd.read_csv(getFN,skiprows=[1,2,5],nrows=5,usecols=[0,1,3]) print (readData)
引数 | 指定方法 |
---|---|
skiprows | 指定した行を飛ばして取得します。1行目=0、2行目=1、・・・で指定します。 |
nrows | 指定した行数分取得します。ヘッダ行数分を除いて、指定した行数取得します。 |
usecols | 指定した列を取得します。ヘッダ名または列番号で指定します(['X1','X2','X4']または[0,1,3])。列番号の場合は1列目=0、2列目=1、・・・で指定します。 |
X1 X2 X4 0 0.003 -0.036 -17.0 1 0.003 -0.035 -16.0 2 0.003 -0.035 -17.0 3 0.003 -0.036 -18.0 4 0.003 -0.025 -13.0
import pandas as pd getFN='sample3_1_1.csv' readData=pd.read_csv(getFN,usecols=[0,1]) #csvファイルへ出力 readData.to_csv("output1.csv")
import pandas as pd getFN='sample3_1_1.csv' readData=pd.read_csv(getFN,usecols=[0,1]) #引数にindex,header追加 readData.to_csv("output2.csv",index=False,header=False)
import pandas as pd getFN='sample3_1_1.csv' readData=pd.read_csv(getFN,usecols=[0,1]) #csvファイルへ出力 readData.to_csv("output3.csv",index=False,header=False) #追記:引数にmode追加 readData.to_csv("output3.csv",index=False,mode='a')
import pandas as pd getFN='sample3_1_2_2.csv' readData=pd.read_csv(getFN,comment='#',header=[0,1],encoding='shift_jis') print (readData) #引数にencoding追加 readData.to_csv("output4.csv",index=False,encoding='shift_jis')