# リスト3.4.1:DataFrameの作成
import pandas as pd
df = pd.DataFrame(
[[1, 10, 100], [2, 20, 200], [3, 30, 300]],
index=["r1", "r2", "r3"],
columns=["c1", "c2", "c3"],
)
df
c1 | c2 | c3 | |
---|---|---|---|
r1 | 1 | 10 | 100 |
r2 | 2 | 20 | 200 |
r3 | 3 | 30 | 300 |
# リスト3.4.3:ラベル指定
df.loc["r2", "c2"]
20
# リスト3.4.5:すべての列ラベルを指定
df.loc["r2", :]
c1 2 c2 20 c3 200 Name: r2, dtype: int64
# リスト3.4.7:すべての行ラベルを指定
df.loc[:, "c2"]
r1 10 r2 20 r3 30 Name: c2, dtype: int64
# リスト3.4.9:行ラベルをリストで指定し列ラベルをスライスで指定した抽出
# 行ラベルをリストで指定、 列ラベルをスライスで指定
df.loc[["r1", "r3"], "c2":"c3"]
c2 | c3 | |
---|---|---|
r1 | 10 | 100 |
r3 | 30 | 300 |
# リスト3.4.11:行の位置をスライスで指定し、 列の位置をリストで指定した抽出
df.iloc[1:3, [0, 2]]
c1 | c3 | |
---|---|---|
r2 | 2 | 200 |
r3 | 3 | 300 |
# リスト3.4.13:[]による指定
df["c2"]
r1 10 r2 20 r3 30 Name: c2, dtype: int64
# リスト3.4.15:DataFrameに対する比較演算
df > 10
c1 | c2 | c3 | |
---|---|---|---|
r1 | False | False | True |
r2 | False | True | True |
r3 | False | True | True |
# リスト3.4.17:比較演算を利用したデータの抽出
# c2列の値が10より大きいデータ
df.loc[df["c2"] > 10]
c1 | c2 | c3 | |
---|---|---|---|
r2 | 2 | 20 | 200 |
r3 | 3 | 30 | 300 |
# リスト3.4.19:複数条件を組み合わせたデータの抽出
# c1列が1より大きくかつ、c3列が300より小さいデータ
df.loc[(df["c1"] > 1) & (df["c3"] < 300)]
c1 | c2 | c3 | |
---|---|---|---|
r2 | 2 | 20 | 200 |