pandas.DataFrameの表を作成する方法

当ページでは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ブログ

コメント

タイトルとURLをコピーしました