【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)


いいなと思ったら応援しよう!