| |
Pandasを使う CSVファイル読み込みとデータ参照の基礎
CSVファイルを読む
次のようなCSVファイルを用意します。
支店コード,支店名称,地域コード,所在地,従業員数
00100,東京,3,東京都港区北青山9-99-998,40
00101,新宿,3,新宿区新宿二丁目8-88,208
00110,池袋,3,豊島区東池袋7-77-77,103
...
|
これを読ませます。
import pandas as pd
df = pd.read_csv("/content/drive/MyDrive/colaroot/data/shiten.csv")
|
フィールド区切り文字のデフォルトはカンマ、文字コードのデフォルトはUTF-8です。変更したい場合は下記のようにします。
df = pd.read_csv("/content/drive/MyDrive/colaroot/data/shiten.csv", encoding="cp932", sep="\t")
|
読んだデータを色々な切り口で表示できます。
# データ自体を表示
print(df)
# データを先頭から指定した個数表示
print(df.head(10))
# 10件飛ばしに表示。Jupyter Lab(Notebook)等でデータを確認するのに便利
df[::10]
# データをランダムに指定した個数表示
print(df.sample(10))
# 列の一覧
print(df.columns)
# Index(['支店コード', '支店名称', '地域コード', '所在地', '従業員数'], dtype='object')
# 行と列の数を表示
print(df.shape)
# (30, 5)
# 統計量(データ数、平均、標準偏差、最小値、最大値)を表示
print(df.describe())
# 小数点以下2桁で表示
print(df.describe().round(2))
# 各列のデータ型、NonNULLデータ数などを表示
print(df.info())
|
次に色々加工してみます。
# 列をSeriesとして切り出す
a = df["支店名称"]
print(",".join(a))
print(a.info())
# 一部の列をDataFrameとして切り出す
a = df[["支店コード","支店名称"]]
print(a)
# 行をSeriesとして切り出す。行番号(Index)は先頭が0なので、[6]はCSV上で7行目のデータを表す
a = df.loc[6]
print(a.info())
# 指定した(行番号、列名)のデータを取得
print(df.loc[6, "支店名称"])
# 指定した範囲の行と、指定した一つの列からなるSeriesを取得
a = df.loc[6:8, "支店名称"]
print(a)
# 指定した範囲の行と、指定した範囲の列からなるDataFrameを取得
a = df.loc[6:8, "支店コード":"支店名称"]
print(a)
# 行の範囲を「:」にすると全ての行が対象になる
a = df.loc[:, "支店名称"]
print(a)
a = df.loc[:, "支店コード":"支店名称"]
print(a)
# locの代わりにilocを使うと、列名の代わりに列番号(先頭が0)の指定になる
print(df.iloc[6, 1])
# 全ての行の支店コード([0])と支店名称([1])からなるDataFrameを取得
# PandasだけではなくPythonのrangeなども同様ですが、0:2とすると2は含まれない(0と1だけ)なので注意
print(df.iloc[:, 0:2])
|

(first uploaded 2024/01/06 last updated 2024/02/11, URANO398)
|