今回は、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 listdf['Name'] = name # Observe the resultprint(df) |
出力
TotalScore MathScore Name
0 420 50 Rhema
1 380 40 Mehreen
2 390 45 Nitin
カラムを削除する
pandas dataframeのdrop()メソッドを使って、特定のカラムを削除することができます。
# dropping passed columnsdf.drop(["Name"], axis = 1, inplace = True) |
これで、カラム ‘Name’ がデータフレームから削除されます。
データフレームの行を操作する
では、これらの操作を行に対して行う方法を理解しましょう。
行を選択する
データフレームから行を選択するには、loc[]メソッドとiloc[]メソッドのどちらかを使うことができます。
loc[]メソッドでは、行のインデックス値を使って行を取得することができます。
また、iloc[]関数を使用すると、整数の位置からiloc[]関数を使って行を取得することができます。
# importing pandas packageimport pandas as pd
# making data frame from csv filedata = pd.read_csv("employees.csv", index_col ="Name")
# retrieving row by loc methodfirst = 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 functionnew_data = {'Name': 'Ripun', 'MathScore': 89, 'TotalScore': 465}
df = df.append(new_data, ignore_index = True)
#using concat functionconcat_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 moduleimport pandas as pd
# making data frame from csv filedata = pd.read_csv("employees.csv", index_col ="Name" )
# dropping passed valuesdata.drop(["Shubham", "Mariann"], inplace = True)
|
まとめ
以上、今回はPythonで行と列を扱う様々な方法について説明しました。
一般に、データフレームは Python の 2 次元構造で、データを保存したり、他のさまざまな機能を実行するために使用することができます。
参考文献
dataframe の公式ドキュメントはこちら – https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html