python pandasメソッド一覧 データ取得、削除、更新

既出情報のトレースではありますが、自分でわかりやすいようにまとめます。

準備

anacondaには最初からついてるはず。ところが、古めかしい「pandas」を使用していると、便利な構文が使えなかったりするので、pandasをアップグレードする必要がある。以下Windowsの場合。

管理者権限で Anaconda Prompt 立ち上げ → コマンド。

pip install --upgrade pandas

データの読み込み

pd.read_csv(‘csvfile’)
csvデータを読みこむ。読み込んだものはデータフレームオブジェクトになる

df.head()
頭5行分データ取得

df.tail()
しっぽ5行分データ取得

データの状態を確認

行数、列数やデータ型など

df.shape
行数と列数がタプルになって返ってくる。 → (len(row), len(column))

df.index
rangeindexオブジェクトというよくわからない型が返ってくるが、len(df.index) とすると単純に「行数」が返ってくる。しかし shapeもこれも そうだが、ヘッダーの行は自動的にとりのぞかれていることに注意

df.columns
こちらもよくわからない型がかえるので、len(df.columns) とすると単純に「列数」が返ってくる。

df.dtypes
型の確認

統計

df.describe()

データの取得、更新など

df[“col_name”]
カラム名を指定すると、その列のデータを取得できる

df.loc[“index”, “columns”]
df.loc[“index”:”index”, “columns”:”columns”]
df.loc[:,:]
まずatだのiatだのうざい。locとilocだけ十分やろ。しらんけど。まずはindexという概念を理解する必要がある。該当データにindexデータが含まれていない場合 pandas は自動でインデックス番号を付与する。この場合は loc[0: “index”, “columns”:”columns”]のようにint型で指定。

df.iloc[index, index]
df.iloc[index:index, columns:columns]
df.iloc[:,:]
ilocの場合は番号で指定できると思っておけばいいのではないか。

df.query()
使わない。飛ばす。

データの更新

更新用のメソッドとかあるっぽいけど、とりあえずいいかなあ。とりあえず使わない。状況次第で追記

ユニーク系

df[“name”].unique()
df[“name”].nunique()
df[“name”].value_counts()
使わないかなあ。unique()はユニークなやつをn numpy.ndarray とかいうよくわからない型で返す。value_counts()は重複しているやつそれぞれカウント。強いて使いそうなのは、nunique()でこれはユニークの合計をintで返す。

df[“name”].drop_duplicates()
重複の削除。これは結構つかうかも。あと s がついてることに注意。

並び変えとか

df[“name”].sort_values()
そのまんま。

df.sort_index()
使わない。

データの削除

行の削除

df.drop(0)
引数にインデックス番号で行削除

df.drop([1,2,3])
複数行を削除したい場合は引数にリスト

列の削除

df.drop(columns=”name”)
index= とか columns= とかはバージョン 0.21から上じゃないと使えないそうなんで、最初に書いてある通りバージョンアップしときましょ。

イタシカタナシにこういう書き方もできる。
df.drop(“name”, axis=1)

行列の削除

使わないとは思いますけど、なにかのときに
df.drop(index=[1,3,5], columns=[“name”, “sales”])

雑感

あいかわらず汚いブログ。

pandasは元データを壊すわけじゃないので、気軽にいろいろできるかんじ。しかしずいぶんと横道にそれた感。