今回は、Pythonを使って表のような構造を作り、その行と列を扱う方法を紹介します。
これは、大量のデータを扱う必要があるデータサイエンスアプリケーションを作成するときに非常に便利です。
Pythonを使って、行や列の作成、更新、削除などの基本的な関数を実行する方法を見てみましょう。
この記事もチェック:Pythonのデータサイエンスで使えるライブラリを5つ紹介する
データフレームとは?
Pythonはデータ分析やデータ処理に広く使われている言語であるため、データを構造化された形で保存する必要があります。
例えば、従来のテーブルのように行と列の形で保存します。
そのために、PythonのPandasライブラリのDataFrameオブジェクトを使います。
内部的にはデータは2次元配列の形で保存されています。
今回は、DataFrameの行と列について詳しく説明します。
この記事もチェック:Pythonのデータ分析ライブラリのおススメを4つ紹介する
シンプルな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