pandas:【縦横の方向を考えた】データフレーム作成
前提
- Python
- ディクショナリ
- リスト
- タプル
サンプルコード
例1:列を作っていく
概要
- ディクショナリデータ作成
- ディクショナリ>リスト(タプル)
- ディクショナリからデータフレーム作成
- データフレームデータを使ってMatplotlib表示
データ作成
import pandas as pd
dic = {'a':[1,2,3],'b':[4,5,6],'c':(7,8,9)}
print(dic)
print(dic['a'])
print(dic['b'])
print(dic['c'])
{'a': [1, 2, 3], 'b': [4, 5, 6], 'c': (7, 8, 9)}
[1, 2, 3]
[4, 5, 6]
(7, 8, 9)
- 「リスト>ディクショナリ」の形
- ディクショナリ内のデータタイプ
- リスト …… OK
- タプル …… OK
データフレーム作成
df =pd.DataFrame(dic)
print(df)
print(type(df))
a b c 0 1 4 7 1 2 5 8 2 3 6 9 <class 'pandas.core.frame.DataFrame'>
- データフレームが作成された
- 左の列から順に埋めていくような感じ
- データタイプが「DtataFrame」になっていることを確認
データフレームデータを使ってMatplotlib表示
import matplotlib.pyplot as plt
x = df['a']
y = df['b']
print(x)
print(y)
plt.plot(x, y)
plt.show()
0 1 1 2 2 3 Name: a, dtype: int64 0 4 1 5 2 6 Name: b, dtype: int64
例2:行を作っていく
概要
- ディクショナリデータ作成
- リスト>ディクショナリ
- ディクショナリからデータフレーム作成
データ作成
import pandas as pd
history=[]
info ={}
info['train_loss']=1.2
info['val_loss']=2.3
info['train_acc']=0.2356
info['val_acc']=0.5124
info['epoch']=13
history.append(info) #1回目追加
info ={}
info['train_loss']=1.3
info['val_loss']=2.4
info['train_acc']=0.3356
info['val_acc']=0.6124
info['epoch']=14
history.append(info) #2回目追加
print(history)
print(history[0])
print(history[0]['train_loss'])
[{'train_loss': 1.2, 'val_loss': 2.3, 'train_acc': 0.2356, 'val_acc': 0.5124, 'epoch': 13}, {'train_loss': 1.3, 'val_loss': 2.4, 'train_acc': 0.3356, 'val_acc': 0.6124, 'epoch': 14}]
{'train_loss': 1.2, 'val_loss': 2.3, 'train_acc': 0.2356, 'val_acc': 0.5124, 'epoch': 13}
1.2
- 「リスト>ディクショナリ」の形
データフレーム作成
df = pd.DataFrame(history)
print(df)
print(type(df))
train_loss val_loss train_acc val_acc epoch 0 1.2 2.3 0.2356 0.5124 13 1 1.3 2.4 0.3356 0.6124 14 <class 'pandas.core.frame.DataFrame'>
- データフレームが作成された
- 上の行から順に埋めていくような感じ
- データタイプが「DtataFrame」になっていることを確認
列表示
a = df['epoch']
print(a)
0 13 1 14 Name: epoch, dtype: int64
- 列データの表示が確認できた
データフレームデータを使ってMatplotlib表示
import matplotlib.pyplot as plt
x = df['epoch']
y = df['train_acc']
print(x)
print(y)
plt.plot(x, y)
plt.show()
0 13 1 14 Name: epoch, dtype: int64 0 0.2356 1 0.3356 Name: train_acc, dtype: float64


