
Python Pandas DataFrameの操作
Pandasでデータフレームを操作する場合によく使用する操作方法を列挙する。
モジュールインポート
In [1]:
print("実行環境")
import pandas as pd
import numpy as np
import itertools
!python -V
print('pandas ' + pd.__version__)
print('numnpy ' + np.__version__)
実行環境
Python 3.8.12
pandas 1.3.4
numnpy 1.21.2
# 出力時の表示を指定の数値以下にする
pd.set_option('display.max_rows', 6)
pd.set_option('display.max_columns', 6)
# データの準備
csv_data = pd.read_csv('iris_test.csv')
csv_data

DataFrameの操作
データフレームの複製
csv_data2 = csv_data.copy() # 元のデータフレームに影響がないように内容を変更したい場合.copyを指定する
# csv_data2 = csv_data でコピーしてどちらかの数値に変更があると、もう片方の内容も変更されてしまう。
列名の変更
csv_data2 = csv_data.copy() #元のデータフレームに影響がないようにcopyを指定する
csv_data2.columns = ['column1', 'column2', 'column3', 'column4', 'column5']
csv_data2

行名(index)の変更
csv_data2.index = np.arange(start=0, stop=600, step=4)
csv_data2

行列の入れ替え 転置 T
csv_data.T

データの追加
新規列の追加
新しい列名を指定して、単一のスカラー値を代入すれば、全行にその数値が入る。
csv_data3 = csv_data.copy()
csv_data3["new"] = 0
csv_data3

numpyやリストで必要なデータフレーム数分値を指定することも可能。
csv_data3["new2"] = np.arange(start=0, stop=150, step=1)
csv_data3

シリーズを追加することも可能。
csv_data3["new3"] = csv_data2["column2"]
csv_data3

データフレームやシリーズの列で結合
すでに作成済みのデータフレームやシリーズを結合できる。
pd.concat([csv_data, csv_data2], axis=1)

データの削除
行削除
csv_data.drop([1,3,5,146]) # 行名(index)をリストで指定

列削除
csv_data.drop(["sepal_length", "petal_length"], axis=1)
