【Python】 Pandas データフレームの操作
インポート
import pandas as pd
CSVの読み込み
data = pd.read_csv("ファイルのパス(ファイルがルートディレクトリにある場合はファイル名)")
データフレーム
data
<実行結果>
name height weight age
0 シンジ 160 49 14.0
1 レイ 159 38 14.0
2 カヲル 162 47 NaN
3 マリ 172 58 NaN
4 アスカ 160 42 14.0
特定の列を取得
# locを使用した列の抽出
data_target = data.loc[:,"name"]
# 以下のコードでも同じ実行結果が得られる
# data_target = data.name
data_target
<実行結果>
0 シンジ
1 レイ
2 カヲル
3 マリ
4 アスカ
Name: name, dtype: object
# ilocを使用してDataFrameのまま列を抽出
data_target = data.iloc[:,0:1]
data_target
<実行結果>
name
0 シンジ
1 レイ
2 カヲル
3 マリ
4 ア
# locを使用した複数列の抽出
data_train = data.loc[:,"height":"age"]
data_train
<実行結果>
height weight age
0 160 49 14.0
1 159 38 14.0
2 162 47 NaN
3 172 58 NaN
4 160 42 14.0
特定の行を取得
data[0:3]
<実行結果>
name height weight age
0 シンジ 160 49 14.0
1 レイ 159 38 14.0
2 カヲル 162 47 NaN
行の削除
# 1行目を削除
df = df.drop(0)
DataFrameの単純結合
axis = 0がデフォルトで縦結合、axis = 1で横結合
import pandas as pd
data = pd.read_csv("sample.csv")
# dataの分割
data1 = data.iloc[:2,:4]
data2 = data.iloc[2:5,:4]
# dataの結合
data3 = pd.concat([data1, data2])
print(data,"\n")
print(data1,"\n")
print(data2,"\n")
print(data3)
<実行結果>
name height weight age
0 シンジ 160 49 14.0
1 レイ 159 38 14.0
2 カヲル 162 47 NaN
3 マリ 172 58 NaN
4 アスカ 160 42 14.0
name height weight age
0 シンジ 160 49 14.0
1 レイ 159 38 14.0
name height weight age
2 カヲル 162 47 NaN
3 マリ 172 58 NaN
4 アスカ 160 42 14.0
name height weight age
0 シンジ 160 49 14.0
1 レイ 159 38 14.0
2 カヲル 162 47 NaN
3 マリ 172 58 NaN
4 アスカ 160 42 14.0
インデックスの振り直し
drop = Trueにすることで元のインデックスを削除できる
falseにする(デフォルト)と元のインデックスは新しい列として追加される
df_r = df.reset_index(drop=True)