PythonでDataFrameの行と列を操作する

スポンサーリンク

今回は、Pythonを使って表のような構造を作り、その行と列を扱う方法を紹介します。

これは、大量のデータを扱う必要があるデータサイエンスアプリケーションを作成するときに非常に便利です。

Pythonを使って、行や列の作成、更新、削除などの基本的な関数を実行する方法を見てみましょう。

スポンサーリンク

データフレームとは?

Pythonはデータ分析やデータ処理に広く使われている言語であるため、データを構造化された形で保存する必要があります。

例えば、従来のテーブルのように行と列の形で保存します。

そのために、PythonのPandasライブラリのDataFrameオブジェクトを使います。

内部的にはデータは2次元配列の形で保存されています。

今回は、DataFrameの行と列について詳しく説明します。

シンプルなDataFrameの作成

簡単なDataFrameを作成する方法を例題で説明します。

import pandas as pd
 
data = {
  "TotalScore": [420, 380, 390],
  "MathScore": [50, 40, 45]
}
 
#load data into a DataFrame object:
df = pd.DataFrame(data)
 
print(df)

結果

       TotalScore  MathScore


0       420        50
  1       380        40
  2       390        45

データフレームのカラムを選択的に印刷する

Pythonで目的のカラムを選択する方法を見てみましょう。

上記のようなデータフレームがあるとします。

そのカラムを選択することができます

print(df[['MathScore']])

上記のコードでは、’MathScore’ カラムの値だけを表示します。

Pythonでデータフレームに列を追加する

新しいリストを宣言して、それをデータフレームのカラムに変換することで、データフレームにカラムを追加することができます

# creating  a new list called name.
name = ['Rhema', 'Mehreen', 'Nitin']
   
# Using 'Name' as the column name
# and equating it to the list
df['Name'] = name
   
# Observe the result
print(df)

出力

   TotalScore  MathScore     Name


0         420         50    Rhema
1         380         40  Mehreen
2         390         45    Nitin

カラムを削除する

pandas dataframeのdrop()メソッドを使って、特定のカラムを削除することができます

# dropping passed columns
df.drop(["Name"], axis = 1, inplace = True)

これで、カラム ‘Name’ がデータフレームから削除されます。

データフレームの行を操作する

では、これらの操作を行に対して行う方法を理解しましょう。

行を選択する

データフレームから行を選択するには、loc[]メソッドとiloc[]メソッドのどちらかを使うことができます。

loc[]メソッドでは、行のインデックス値を使って行を取得することができます

また、iloc[]関数を使用すると、整数の位置からiloc[]関数を使って行を取得することができます

# importing pandas package
import pandas as pd
   
# making data frame from csv file
data = pd.read_csv("employees.csv", index_col ="Name")
   
# retrieving row by loc method
first = data.loc["Shubham"]
second = data.loc["Mariann"]
   
   
print(first, "

", second)

上記のコードでは、CSVファイルをデータフレームとして読み込み、そのインデックス値として「Name」列を代入しています。

この後、このインデックスを使用して行を検索しています。

Pythonでデータフレームの行を作成する

データフレームに新しい行を挿入するには、データフレーム内でappend()関数、concat()関数、またはloc[]関数を使用します。

#adding a new row using the next index value.
df.loc[len(df.index)] = ['450', '80', 'Disha']
   
display(df)
 
#using append function
 
new_data = {'Name': 'Ripun', 'MathScore': 89, 'TotalScore': 465}
df = df.append(new_data, ignore_index = True)
 
#using concat function
 
concat_data = {'Name':['Sara', 'Daniel'],
        'MathScore':[89, 90],
        'TotalScore':[410, 445]
       }
   
df2 = pd.DataFrame(concat_data)
 
   
df3 = pd.concat([df, df2], ignore_index = True)
df3.reset_index()
   
print(df3)

出力

Using loc[] method


TotalScore MathScore     Name


0        420        50    Rhema
1        380        40  Mehreen
2        390        45    Nitin
3        450        80    Disha


Using append() function


TotalScore MathScore     Name


0        420        50    Rhema
1        380        40  Mehreen
2        390        45    Nitin
3        450        80    Disha
4        465        89    Ripun


Using Concat() function


TotalScore MathScore     Name


0        420        50    Rhema
1        380        40  Mehreen
2        390        45    Nitin
3        450        80    Disha
4        465        89    Ripun
5        410        89     Sara
6        445        90   Daniel

行の削除

行を削除するには drop() メソッドを使用します。

メソッドの引数として、行のインデックス値を渡さなければなりません。

# importing pandas module
import pandas as pd
   
# making data frame from csv file
data = pd.read_csv("employees.csv", index_col ="Name" )
   
# dropping passed values
data.drop(["Shubham", "Mariann"], inplace = True)

まとめ

以上、今回はPythonで行と列を扱う様々な方法について説明しました。

一般に、データフレームは Python の 2 次元構造で、データを保存したり、他のさまざまな機能を実行するために使用することができます

参考文献

dataframe の公式ドキュメントはこちら – https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html

タイトルとURLをコピーしました