本記事は、データ解析用ライブラリ Pandas の データ構造 DataFrame のチートシート的なものを目指して書きました。
本家のチートシートを参考にしています。
インストールと import
インストール
Pandas は外部ライブラリなので、pip 等を使用してインストールします。
pip install pandas
Google Colaboratory にはデフォルトでインストールされていますので、インストール作業は不要です。
import
import pandas
でも問題ありませんが、省略したpd
という名前で import されることが多いです。
import pandas as pd
環境について
本記事のコードは原則 Google Colaboratory で確認していきます。
2022年4月の Google Colaboratory の環境は、
- Python 3.7.13
- pandas 1.3.5
になっています。
DataFrame の作成
列(column)の値を指定して作成
index 指定なし
df1_1 = pd.DataFrame(
{'a' : [1, 2, 3],
'b' : [4, 5, 6],
'c' : [7, 8, 9]}
)
index を指定していないので、0 から連番で付与されます。
index 指定あり
df1_2 = pd.DataFrame(
{'a' : [1, 2, 3],
'b' : [4, 5, 6],
'c' : [7, 8, 9]},
index = ['あ', 'い', 'う']
)
行(row)の値を指定して作成
index、column 指定なし
df2_1 = pd.DataFrame(
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
)
index、column、どちらも指定していないので、0 から連番で付与されます。
index、column 指定あり
df2_2 = pd.DataFrame(
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]],
index = ['あ', 'い', 'う'],
columns = ['a', 'b', 'c']
)
Multi index の DataFrame の作成
m_index = pd.MultiIndex.from_tuples(
[('あ', 1), ('あ', 2),('い', 1)],
names = ['x', 'y']
)
df3 = pd.DataFrame(
{'a' : [1, 2, 3],
'b' : [4, 5, 6],
'c' : [7, 8, 9]},
index = m_index
)
CSVファイルから作成
read_csv()
メソッドで作成します。
オプション指定なし
a,b,c
1,2,3
4,5,6
7,8,9
上記のようなCSVファイル「data.csv」を読み込みます。
df4_1 = pd.read_csv('/content/data.csv')
オプションを何も指定しない場合、1行目が columns(カラム名、列名)になり、index は連番になります。
index を指定
,a,b,c
あ,1,2,3
い,4,5,6
う,7,8,9
上記のようなCSVファイル「data2.csv」で、「あ、い、う」を index にしたい場合、引数index_col
で指定します。
df4_2 = pd.read_csv('/content/data2.csv', index_col=0)
indec_col
のデフォルト値はNone
です。
DataFrameを編集する
loc
loc
は index 名、column 名を指定して、値を代入したり、値を取り出す時に使用します。
いくつか具体的な使用例を挙げます。
編集前のDataFrame
df5_1 = pd.DataFrame(
{'a' : [1, 2, 3, 4, 5],
'b' : [6, 7, 8, 9, 10],
'c' : [11, 12, 13, 14, 15],
'd' : [16, 17, 18, 19, 20],
'e' : [21, 22, 23, 24, 25]},
index = ['あ', 'い', 'う', 'え', 'お']
)
index名とcolumn名を指定して値を変更
index が「い」、column が「d」の値を「100」に変更します。
df5_1.loc['い', 'd'] = 100
column名を複数指定して値を変更
index が「う」、column が「a、c、e」の値を「200」に変更します。
複数指定したい場合はリスト形式で指定します。
df5_1.loc['う', ['a', 'c', 'e']] = 200
index 名もリストで複数指定できます。
index名の範囲を指定して値を変更
index 名が「い〜え」、column 名が「b」の値を「300」に変更します。
範囲で指定したい場合はスライスで指定します。
df5_1.loc['い':'え', 'b'] = 300
loc
でスライス指定をすると、end で指定した「え」も含まれるので要注意です。
column 名もスライス指定できます。
順次追記します。
Google Colaboratory
本記事に掲載しているコードは Google Colaboratory で動作を確認しています。
下記リンクからアクセスして、ご自身の Google ドライブにコピーしていただければ、すぐに実行できます。
環境構築の不要な Google が提供している Webサービスなので、Python を学習中の方にはオススメです。
Google Colaboratory の方も順次追加します
おわりに
DataFrame の操作は定期的に使用していないとなかなか覚えられないので、基本的な操作はここを見れば解決するようなものを目指して、今後も追記していきます。
以上です。
コメント