スポンサーリンク

loc,ilocを使いDataFrameの列を入れ替える

まずは、下記のようにcsvファイルを読み込んで、'id', 'region', 'weather', 'value'の列名を付与します。

data = pd.read_csv('in.txt', names=('id', 'region', 'weather', 'value'))

locを使う場合は、入れ替えたい順番を、列名のリストで指定します。
下記の場合は、'region', 'id'の順に入れ替えしました。
dataExchange = data.loc[:, ['region', 'id', 'weather', 'value']]

ilocを使う場合は、列名を入れ替えたい順番を、番号のリストで指定します。
先頭が0番目になります。
dataExchange = data.iloc[:, [3,2,1,0]]

スポンサーリンク

サンプルコード

例えば、下記のin.txtがあったとします。

 $ cat in.txt 
1,H,雪,20
2,I,曇,55
3,J,晴,10

下記がサンプルコードになります。
 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import pandas as pd

data = pd.read_csv('in.txt', names=('id', 'region', 'weather', 'value'))
print(data)

dataExchange = data.loc[:, ['region', 'id', 'weather', 'value']]
print(dataExchange)

dataExchange = data.iloc[:, [3,2,1,0]]
print(dataExchange)

下記が実行結果になります。
 $ ./sample.py 
   id region weather  value
0   1      H       雪     20
1   2      I       曇     55
2   3      J       晴     10
  region  id weather  value
0      H   1       雪     20
1      I   2       曇     55
2      J   3       晴     10
   value weather region  id
0     20       雪      H   1
1     55       曇      I   2
2     10       晴      J   3

スポンサーリンク