Series と DataFrame の基礎
さまざまなデータソースから Pandas のデータ構造を作成し、確認します。
「Series と DataFrame の基礎」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
Pandasとは
Pandasは、NumPyを基盤としてデータ分析向けに最適化されたSeries(1次元のラベル付き配列)とDataFrame(2次元のラベル付きテーブル)を提供します。
import pandas as pd
s = pd.Series([10, 20, 30], index=["a","b","c"])
print(s)
# a 10
# b 20
# c 30Seriesの作成
リスト、辞書、またはスカラーからSeriesを作成します。インデックスはデフォルトで0始まりの整数になります。
import pandas as pd
# From list:
s1 = pd.Series([1, 2, 3])
# From dict (keys become index):
s2 = pd.Series({"x": 10, "y": 20})
# Scalar (broadcast):
s3 = pd.Series(5, index=range(4))
print(s3) # 0 5 / 1 5 / 2 5 / 3 5DataFrameの作成
リストの辞書、辞書のリスト、またはNumPy配列からDataFrameを作成します。
import pandas as pd
df = pd.DataFrame({
"name": ["Alice","Bob","Carol"],
"age": [30, 25, 35],
"score":[95.5, 87.0, 92.3]
})
print(df)基本的な確認
head()、tail()、shape、dtypes、info()、describe()は、新しいデータセットを扱う際の最初の手順です。
import pandas as pd
df = pd.read_csv("data.csv")
print(df.head()) # first 5 rows
print(df.shape) # (rows, cols)
print(df.dtypes) # column types
print(df.describe()) # count, mean, std, min...列へのアクセス
ドット記法または角括弧で列にアクセスします。列名に空白が含まれている場合や、DataFrameの属性名と競合する場合、ドット記法は使えません。
import pandas as pd
df = pd.DataFrame({"age":[30,25], "city":["NY","LA"]})
print(df["age"]) # preferred
print(df.age) # also works if name is simple
print(df[["age","city"]]) # multiple columnsインデックスの基本
インデックスは行にラベルを付けます。デフォルトでは 0、1、2... ですが、ハッシュ可能な任意の値を設定できます。
import pandas as pd
df = pd.DataFrame({"val":[10,20,30]}, index=["a","b","c"])
print(df.loc["b"]) # row with label b
print(df.index) # Index(['a','b','c'])
# Reset to default integer index:
df.reset_index(drop=True, inplace=True)列の追加と削除
新しいキーに代入すると列を追加できます。列を削除するには drop() を使用します。
import pandas as pd
df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})
df["c"] = df["a"] + df["b"] # new column
df.drop(columns=["b"], inplace=True)
print(df)Series のアラインメント
Series を結合するとき、Pandas はインデックスに基づいて位置をそろえます。一致するものがない場合は NaN になります。
import pandas as pd
s1 = pd.Series([1,2,3], index=["a","b","c"])
s2 = pd.Series([10,20], index=["b","c"])
print(s1 + s2)
# a NaN
# b 12.0
# c 23.0to_dict と to_list
DataFrame または Series を、エクスポートや確認に使える標準的な Python のデータ構造に戻します。
import pandas as pd
df = pd.DataFrame({"x":[1,2],"y":[3,4]})
print(df.to_dict("records"))
# [{'x': 1, 'y': 3}, {'x': 2, 'y': 4}]
print(df["x"].to_list())
# [1, 2]ファイルの読み込み
Pandas では、CSV、Excel、JSON、Parquet、SQL のデータを DataFrame に直接読み込めます。
import pandas as pd
df_csv = pd.read_csv("data.csv")
df_excel = pd.read_excel("data.xlsx", sheet_name="Sheet1")
df_json = pd.read_json("data.json")
df_parq = pd.read_parquet("data.parquet")
# pd.read_sql("SELECT * FROM table", conn)ファイルの書き込み
DataFrame を CSV、Excel、JSON、Parquet にエクスポートします。
import pandas as pd
df = pd.DataFrame({"a":[1,2],"b":[3,4]})
df.to_csv("out.csv", index=False)
df.to_json("out.json", orient="records")
df.to_parquet("out.parquet")確認問題
df.describe() は何を返しますか。
復習
Series は 1 次元のラベル付き配列で、DataFrame は 2 次元のラベル付きテーブルです。df["col"] で列にアクセスします。簡単な確認には head()、describe()、info() を使用します。組み込み関数を使って CSV、Excel、JSON、Parquet の読み書きができます。
よくある質問
「Series と DataFrame の基礎」レッスンは無料ですか?
はい。「Series と DataFrame の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「Series と DataFrame の基礎」で何を学びますか?
さまざまなデータソースから Pandas のデータ構造を作成し、確認します。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Series と DataFrame の基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Series と DataFrame の基礎
- インデックス指定、フィルタリング、ブールマスク
- GroupBy、集約、ピボットテーブル
- マージ、結合、データクリーニング