Pythonでpandas入門2(データの追加と削除および並び替え)
Pythonのデータ分析で用いられるpandasの入門編です。データ(DataFrame)の列と行の追加および削除と、データの並び替えについて解説します。
目次
列の追加
新しい列名の指定による追加
DataFrameに新しい列名を指定して値を追加すると、新たな列が追加されます。
CSVファイルを読み込んで、新しい列を追加してみます。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
print(df)
df['new_col'] = [True, True, False, False]
print(df)
下記のように、dfに新しい列が追加されます。
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name World Japan new_col
0 Windows 75.56 65.88 True
1 OS X 16.48 16.64 True
2 Chrome OS 2.09 0.51 False
3 Linux 1.97 1.34 False
assignメソッドによる列の追加
assignメソッドに列名と値を指定することで、新しいDataFrameを作成できます。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
df2 = df.assign(new_col = [True, True, False, False])
print(df)
print(df2)
dfは元のままで、列が追加されたDataFrame df2が作成されました。
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name World Japan new_col
0 Windows 75.56 65.88 True
1 OS X 16.48 16.64 True
2 Chrome OS 2.09 0.51 False
3 Linux 1.97 1.34 False
列の削除
del文による列の削除
del文でDataFrameの列名を指定することで、特定の列を削除できます。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
print(df)
del df['World']
print(df)
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name Japan
0 Windows 65.88
1 OS X 16.64
2 Chrome OS 0.51
3 Linux 1.34
dropメソッドによる列の削除
dropメソッドに列名とaxisを指定することで、任意の列を削除できます。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
df2 = df.drop('World', axis=1)
print(df)
print(df2)
元のDataFrame dfはそのままで、列が削除されたdf2が作成されました。
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name Japan
0 Windows 65.88
1 OS X 16.64
2 Chrome OS 0.51
3 Linux 1.34
行の追加
appendメソッドで、新たな行を追加できます。appendメソッドのignore_index引数をTrueにすると、追加した行にインデクス番号が振られます。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
print(df)
df2 = df.append(pd.DataFrame([['others', 3.9, 15.63]], columns=df.columns), ignore_index=True)
print(df2)
元のDaraFrame dfは変更されず、行が追加されたDaraFrame df2が作成されました。
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
4 others 3.90 15.63
行の削除
dropメソッドで、任意の行の削除ができます。drop(n)でインデックスnの行が削除されます。axisの指定は不要です。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
df2 = df.drop(1)
print(df)
print(df2)
元のDaraFrameは変更されず、インデックス1の行が削除されたDataFrame df2が作成されました。
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name World Japan
0 Windows 75.56 65.88
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
インデックス番号は振り直しされないのですね。
データの並び替え
インデックス番号で並び替える
sort_index()メソッドで、インデックス番号での並び替えができます。
昇順に並び替えたい場合はascending引数をTrueにするか指定しません。降順に並び替える場合はascending引数をFalseにします。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
df2 = df.sort_index(ascending=False)
print(df)
print(df2)
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name World Japan
3 Linux 1.97 1.34
2 Chrome OS 2.09 0.51
1 OS X 16.48 16.64
0 Windows 75.56 65.88
列の値で並び替える
列の値で並び替えるには、sort_values()メソッドを使用します。引数として、並び替えに使う列名を指定します。
import pandas as pd
df = pd.read_csv('test.csv', encoding='shift_jis')
df2 = df.sort_values('Japan', ascending=False)
print(df)
print(df2)
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
2 Chrome OS 2.09 0.51
3 Linux 1.97 1.34
Name World Japan
0 Windows 75.56 65.88
1 OS X 16.48 16.64
3 Linux 1.97 1.34
2 Chrome OS 2.09 0.51
複数の列で並び替える場合には、列名のリストを引数に入れます。
公開日
広告
Pythonでデータ分析カテゴリの投稿
- DataFrameの欠損値を特定の値で置き換える
- Pythonでpandas入門1(データの入力とデータへのアクセス)
- Pythonでpandas入門2(データの追加と削除および並び替え)
- Pythonでpandas入門3(データの統計量の計算)
- Pythonでpandas入門4(データの連結と結合)
- Pythonでpandas入門5(欠損値(NaN)の扱い)
- Pythonでデータを学習用と検証用に分割する
- Pythonでデータ分析入門1(初めての回帰分析)
- Pythonでデータ分析入門2(初めてのロジスティック回帰(2クラス分類))
- Pythonでデータ分析入門3(初めての決定木(多クラス分類))
- Pythonで回帰モデルの評価関数
- Pythonで箱ひげ図を描く
- Python(pandas)でExcelファイルを読み込んでDataFrameにする
- pandasでカテゴリ変数を数値データに変換する
- pandasでクロス集計する
- pandasで同じデータ(要素)がいくつあるか調べる
- pandasで相関係数を計算する
- pandasとseabornでデータの可視化(散布図行列)
- pandasの学習用のデータセットを入手する
- scikit-learnのサンプルデータセットを入手する