pandasで効率よくデータを取り込む
Amany Mahfouz
Instructor
tax_data = pd.read_csv('us_tax_data_2016.csv')
print(tax_data.shape)
(179796, 147)
usecols 引数で読み込む列を選択するcol_names = ['STATEFIPS', 'STATE', 'zipcode', 'agi_stub', 'N1']col_nums = [0, 1, 2, 3, 4]# 列名で選択 tax_data_v1 = pd.read_csv('us_tax_data_2016.csv', usecols=col_names)# 列番号で選択 tax_data_v2 = pd.read_csv('us_tax_data_2016.csv', usecols=col_nums)print(tax_data_v1.equals(tax_data_v2))
True
nrows 引数で読み込む行数を制限するtax_data_first1000 = pd.read_csv('us_tax_data_2016.csv', nrows=1000)print(tax_data_first1000.shape)
(1000, 147)
nrows と skiprows を併用してファイルを分割処理するskiprows は行番号のリスト、行数、または行を絞る関数を受け付けますheader=None を設定しますtax_data_next500 = pd.read_csv('us_tax_data_2016.csv',
nrows=500,
skiprows=1000,
header=None)
print(tax_data_next500.head(1))
0 1 2 3 4 5 6 7 8 9 10 ... 136 137 138 139 140 141 142 143 144 145 146
0 1 AL 35565 4 270 0 250 0 210 790 280 ... 1854 260 1978 0 0 0 0 50 222 210 794
[1 rows x 147 columns]
names 引数にリストを渡して列名を指定するcol_names = list(tax_data_first1000)tax_data_next500 = pd.read_csv('us_tax_data_2016.csv',nrows=500, skiprows=1000,header=None,names=col_names) print(tax_data_next500.head(1))
STATEFIPS STATE zipcode agi_stub ... N11901 A11901 N11902 A11902
0 1 AL 35565 4 ... 50 222 210 794
[1 rows x 147 columns]
pandasで効率よくデータを取り込む