当ページではpandas.DataFrameの作成方法を記載している。
作成したデータをどのように使用するかについては、別途以下で記載している。
(現在記載中)
また、pandasは下記の作成以外にExcelやCSVからインポートすることが出来る。
インポート方法については、別途以下で記載している。
(現在記載中)
1.pandas.DataFrameとは何か?
二次元の表形式を扱えるデータフォーマット。
BSD系のライセンスであり、且つ、データの構造が分かりやすいデータ型である。
2.pandas.DataFrameの登録方法
設定は以下の方法で設定することが出来る。
(a)dict型を使用してカラム名・値を設定し、pandas.DataFrameに変換する方法
(b)配列でカラムと値をそれぞれ設定し、pandas.DataFrameに変換する方法
(c)配列を使用して、カラム名を設定後、後から値を設定する方法
以下でその方法を説明する。
(a)dict型を使用してカラム名・値を設定し、pandas.DataFrameに変換する方法
基本的な設定方法は以下となる。
import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
print(df)
実行結果:
col1 col2
0 1 3
1 2 4
1行目はOSSを指定している。
3行目はdict形式で表を設定している。
d = {'col1': [1, 2], 'col2': [3, 4]}
1階層目のキーにはカラムを設定し、値にはそのカラムのデータを配列型で設定する。
上記の例の場合は、
カラムが[col1]・[col2]となり、[col1]は[1]・[2]、[col2]は[3]・[4]が値として設定される。
4行目は3行目で設定したデータを[pandas.DataFrame]に格納している。
5行目は設定したデータを表示している。
(b)配列でカラムと値をそれぞれ設定し、pandas.DataFrameに変換する方法
基本的な設定方法は以下となる。
import pandas as pd
import numpy as np
df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'])
print(df2)
実行結果:
実行結果
a b c
0 1 2 3
1 4 5 6
2 7 8 9
1・2行目はOSSを指定している。ちなみにnumpyは数値を扱うためのライブラリ。
3・4行目はpandas.DataFrameのデータ形式を設定する。
1つ目の引数では、numpyのarray型を設定する。設定時は2次元配列で設定する。
2つ目以降ではカラム名・列名等を設定する。上記例ではカラム名を[‘a’, ‘b’, ‘c’]に設定している。
列名を設定する場合は以下のように設定する。
df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a', 'b', 'c'],index=['d', 'e', 'f'])
4行目は設定したデータを表示している。
(c)配列を使用して、カラム名を設定後、後から値を設定する方法
基本的な設定方法は以下となる。
import pandas as pd
from dataclasses import make_dataclass
Point = make_dataclass("Point", [("x", int), ("y", int)])
df3=pd.DataFrame([Point(1, 2), Point(3, 4), Point(5, 6)])
print(df3)
1・2行目はOSSを指定している。make_dataclassはデータクラスを作成するためのライブラリ。
4行目はpandas.DataFrameの表のベースを設定している。
1つ目の引数はクラス名をしている…らしいが、これをどこで使うかは良く分からなかった。
多分、型を確認したときに[Person]か、[Site]かを見分けられるかなどの使い方をするのだと思うが、クラス名で分けたいことあるか?変数名で見分けられないか?と疑問を感じている。
2つ目の引数はカラム名とカラムの方を設定する。
上記の例ではx列とy列をそれぞれint型で設定している。
5行目はpandas.DataFrameに対して、4行目で作ったカラムのルールの適用と値の設定をしている。
上記の例ではすべての行に4行目のデータクラスを設定した上で1~6の値を設定する。
3.参考
公式ドキュメント
https://pandas.pydata.org/pandas-docs/version/2.3/reference/api/pandas.DataFrame.html
pandas値の取得・更新・削除
pandas.DataFrameの値の取得・更新・削除 | エクヌツITブログ
pandasのデータの検索
pandas.DataFlameのデータ検索(loc,iloc,query) | エクヌツITブログ
pandasのカラム追加・削除
pandasのカラム追加・削除(assign・drop) | エクヌツITブログ
pandasのインポート
pandasのインポートread_csv,read_excel | エクヌツITブログ
pandasのエクスポート
pandasデータのエクスポートto_csv,to_excel | エクヌツITブログ
pandasの要素数取得
pandas.DataFrame要素数を取得size,count | エクヌツITブログ

コメント