本日はデータ分析に欠かせないpandasのライブラリのうち、
データフレームの操作に関してまとめます。
データフレームの操作に関してまとめます。
Today's Contents
python上で各データをエクセルのように構造化させ、
テーブルデータのように扱うことができます。
行を「インデックス」、列を「カラム」と呼び、
任意にデータを操作・整形することも可能です。
整形したデータは後のデータ分析やAI開発に活用することができます。
実際にデータフレームを作成して操作・整形してみましょう。
テーブルデータのように扱うことができます。
行を「インデックス」、列を「カラム」と呼び、
任意にデータを操作・整形することも可能です。
整形したデータは後のデータ分析やAI開発に活用することができます。
実際にデータフレームを作成して操作・整形してみましょう。
【インストール】
【インポート】
【バージョン確認】
pip install pandas
【インポート】
import pandas as pd
【バージョン確認】
print(pd.__version__)
【リストから作成】
【辞書から作成】
【インデックスとカラムを指定して作成】
pref_list=['東京都','東京都','北海道','沖縄'']
pd.DataFrame(data=pref_list)
【辞書から作成】
pref_dict=dict(pref=['東京都','東京都','北海道'], city=['新宿','品川','札幌'], population=[349385,414581,1964894])
pd.DataFrame(data=pref_dict)
【インデックスとカラムを指定して作成】
data_list=[['東京都','新宿',349385], ['東京都','品川',414581], ['北海道','札幌',1964894]]
index_list = ["index1", "index2", "index3"]
col_list =["pref", "city", "population"]
pd.DataFrame(data=data_list, index=index_list, columns=col_list )
【csvの読み込み】
※cp932はutf-8やshift_jisでない日本語を読み込むマジックコード
pd.read_csv('test.csv', encoding='cp932')
※cp932はutf-8やshift_jisでない日本語を読み込むマジックコード
【行の追加】
【列の追加】
※以降、ここで作成したデータを基に解説
data_list = [['東京都','新宿',349385], ['東京都','品川',414581], ['北海道','札幌',1964894]]
col_list = ["pref", "city", "population"]
df1 = pd.DataFrame(data=data_list, columns=col_list )
df2 = pd.DataFrame(data = [['沖縄','那覇', 310007]], columns = col_list )
df = pd.concat([df1, df2], axis=0)
df
【列の追加】
df1["temperature"] = [18.5, 17.9, 9.2, 20.5]
※以降、ここで作成したデータを基に解説
【行指定での行削除】
【列名を指定して列削除】
df1 = df.copy()
df1.drop(2) #非破壊的
df1.drop(2, inplace = True) #破壊的
df1.drop([1, 2], inplace = True) #複数指定
【列名を指定して列削除】
df1.drop('pref', axis=1) #非破壊的
df1.drop('pref', inplace = True, axis=1) #破壊的
df1.drop(['pref', 'temperature'], inplace = True, axis=1) #複数指定
【カラムを指定してインデックスへ変更】
【インデックスのリセット】
df1.set_index(‘city’,inplace=True)
【インデックスのリセット】
df1.reset_index(drop=True)
【リストから変更】
col_list = ['col1', 'col2', 'col3', 'col4']
df1.columns = col_list
【先頭行を確認】
【最後尾行を確認】
df_sales.head(3) #行数を指定
df_sales.head() #行数の指定がない場合は5行がデフォルト>
【最後尾行を確認】
df_sales.tail(3) #行数を指定
df_sales.tail() #行数の指定がない場合は5行がデフォルト
【行番号・列番号を指定して抽出】
【行名・列名を指定して抽出】
【条件を指定して行を抽出】
【クエリライクに条件を指定して行を抽出】
df.iloc[3:6] #行のみの指定
df.iloc[:, 1] #列のみの指定
df.iloc[1:3, 0:2] #行と列の指定
【行名・列名を指定して抽出】
df[['city','temperature']] #列の直接指定
df.loc[:,'city':'temperature'] #列範囲の指定
【条件を指定して行を抽出】
df[df['pref'] == '東京都']
【クエリライクに条件を指定して行を抽出】
df.query('pref == "東京都"')
df.query('population > 320000 and temperature < 18')
コメント
コメントを投稿