LoginSignup
18
17

More than 5 years have passed since last update.

python columnsの抽出・削除・名前の変更について

Last updated at Posted at 2019-03-04

初めに

pandas.DataFrameでcolumnsの抽出・削除・名前の変更方法についてまとめてみた。

目次

1.抽出
a.基本的な抽出(df['a'], df.loc, df.iloc 等)
b.複数のカラムをまとめて抽出
c.カラム名に特定の文字を含むカラムのみを抽出

2.削除

3.名前の変更
a.基本的な変更(カラムを指定して変更、全て変更)
b.全てのカラム名に文字を追加する

今回使用するdataは以下の通り
以下、dataが変更される時があるが、常にこのデータにリセットして使用しているものとする。

import pandas as pd
df = pd.DataFrame({'a':[1,11],
                  'b':[2,22],
                  'c':[3,33],
                  'ab':[4,44]},
                 index=['one','two'])
a b c ab
one 1 2 3 4
two 11 22 33 44

1.抽出

a.基本的な抽出(df['a'], df.loc, df.iloc 等)

・カラム名で抽出

df['a']

# one     1
# two    11
# Name: a, dtype: int64
df.a

# one     1
# two    11
# Name: a, dtype: int64
df.loc[:,'a']

# one     1
# two    11
# Name: a, dtype: int64

・カラムの番号で抽出

df.iloc[:,0]

# one     1
# two    11
# Name: a, dtype: int64
b.複数のカラムをまとめて抽出

df[['a','b']]
a b
one 1 2
two 11 22

df.loc[:,'a':'b']
a b
one 1 2
two 11 22

df.iloc[:,0:3]
a b c
one 1 2 3
two 11 22 33
c.カラム名に特定の文字を含むカラムのみを抽出(aをカラム名に含むカラムのみ抽出)
columns_name = df.columns
selected_col = [col for col in columns_name if 'a' in col]
df[selected_col]
a ab
one 1 4
two 11 44

2.削除

・元データに変更を加えないとき

df.drop('a', axis=1)
b c ab
one 2 3 4
two 22 33 44

・元データを変更する時、inplace=Trueを加える

df.drop('a', axis=1, inplace=True)
b c ab
one 2 3 4
two 22 33 44

・まとめて削除する時

df.drop(['a','b'], axis=1, inplace=True)
c ab
one 3 4
two 33 44

3.名前の変更

a.基本的な変更

・元のデータに変更を加えないとき

df.rename(columns={'a':'A'})
A b c ab
one 1 2 3 4
two 11 22 33 44

・元のデータに変更を加えるときは、inplace=Trueを加える。

df.rename(columns={'a':'A'}, inplace=True)
df
A b c ab
one 1 2 3 4
two 11 22 33 44

・複数のカラム名もまとめて変更できる

df.rename(columns={'a':'A'
                   'b':'B'}, inplace=True)
df
A B c ab
one 1 2 3 4
two 11 22 33 44

・全てのカラムを変更する場合(元データも変更される)
※データのカラム数と新たに指定するカラム名の数は同じでなければいけない

df.columns = ['A','B','C','AB']
A B C AB
one 1 2 3 4
two 11 22 33 44
b.全てのカラム名に文字を追加する
df_name = 'new_' + df.columns
df.columns = df_name
df
new_a new_b new_c new_ab
one 1 2 3 4
two 11 22 33 44

以上です。
間違いや追加した方がいい内容があればご教授ください。

18
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17