2020年5月9日土曜日

【pandas】データフレームの行・列の追加、削除

 データ分析用ライブラリpandasはPythonでデータ分析を行う際に一般的に用いられるライブラリ。pandasではエクセルのような行と列からなる表構造をしたデータフレームオブジェクトを操作しデータ分析を行う。データフレームに行・列を追加する方法、データフレームから行・列を削除する方法を説明する。

 ライブラリpandasを使うにはインポートが必要。通常次のようにpdと略されてインポートされる。

import pandas as pd


1. データフレームへ行を追加

 次のデータフレームに行を追加する場合。

import pandas as pd

data = [[25, 165, 65], [45, 178, 80], [32, 183, 72]]
name = ['Jane', 'Bob', 'Mike']
property = ['age', 'toll', 'weight']

df = pd.DataFrame(data=data, columns=property, index=name)
print(df)

実行結果

      age  height  weight
Jane   25     165      65 
Bob    45     178      80 
Mike   32     183      72 


 pandas.DataFrame.locでインデックス名とデータを与えることで行が追加される。

df.loc['Anna'] =  [38, 155, 49]
print(df)

実行結果

      age  height  weight
Jane   25     165      65 
Bob    45     178      80 
Mike   32     183      72 
Anna   38     155      49 


2. データフレームへ列を追加

 次のデータフレームに列を追加する場合。

import pandas as pd

data = [[25, 165, 65], [45, 178, 80], [32, 183, 72]]
name = ['Jane', 'Bob', 'Mike']
property = ['age', 'toll', 'weight']

df = pd.DataFrame(data=data, columns=property, index=name)
print(df)

実行結果

      age  height  weight
Jane   25     165      65 
Bob    45     178      80 
Mike   32     183      72 


 データフレームに新しいcolumn名を指定し、データを与えることで列が追加される。

df['blood-type'] = ['A', 'O', 'B']
print(df)

実行結果

      age  height  weight  blood-type
Jane   25     165      65           A
Bob    45     178      80           O 
Mike   32     183      72           B


3. データフレームから行を削除

 次のデータフレームから行を削除する場合。

import pandas as pd

data = [[25, 165, 65], [45, 178, 80], [32, 183, 72]]
name = ['Jane', 'Bob', 'Mike']
property = ['age', 'toll', 'weight']

df = pd.DataFrame(data=data, columns=property, index=name)
print(df)

実行結果

      age  height  weight
Jane   25     165      65 
Bob    45     178      80 
Mike   32     183      72 


 pandas.DataFrame.dropでIndex名を指定することで行が削除される。axis=0は行・列の内、行を指定しているがデフォルトがaxis=0なので省略可能。pandas.DataFrame.dropは非破壊なので削除した結果を保持する場合は別のデータフレームに代入する。
 データフレームdfからindex'Mike'を削除した新しいデータフレームdf_dropを作成する場合。

df_drop = df.drop('Mike', axis=0)
print(df_drop)

実行結果

      age  height  weight  blood-type
Jane   25     165      65           A
Bob    45     178      80           O 


4. データフレームから列を削除

次のデータフレームから列を削除する場合。

import pandas as pd

data = [[25, 165, 65], [45, 178, 80], [32, 183, 72]]
name = ['Jane', 'Bob', 'Mike']
property = ['age', 'toll', 'weight']

df = pd.DataFrame(data=data, columns=property, index=name)
print(df)

実行結果

      age  height  weight
Jane   25     165      65 
Bob    45     178      80 
Mike   32     183      72 


 行の削除同様pandas.DataFrame.dropを用いる。columnを指定し、axis=1とすることで列の削除が可能。pandas.DataFrame.dropは非破壊なので削除した結果を保持する場合は別のデータフレームに代入する。
 データフレームdfからcolumn'weight'を削除した新しいデータフレームdf_dropを作成する場合。

df_drop = df.drop('weight', axis=1)
print(df_drop)

実行結果

      age  height
Jane   25     165
Bob    45     178
Mike   32     183


5. リファレンス

pandas > pandas.DataFrame.loc

使用したバージョン:Python 3.7.0/pandas 1.0.3

0 件のコメント:

コメントを投稿