'24/04/06更新:雛形コードを追加した。
本記事では、辞書からpandasデータフレームを作成する雛形コードを3パターン載せました。
■その1. 下図のように、キーに対してバリューが1つの場合の辞書データがあります。これからキーとバリューを列に設定したデータフレームを作成したい場合の例です。
上記のことを成す雛形コードは次の通りです。
import pandas as pd
data = {'A':'1',
'B':'2',
'C':'3',
'D':'4'}
converted_data = {'Key': list(data.keys()),
'Val': list(data.values())}
df = pd.DataFrame(converted_data)
df
■その2. 下図のように、キーに対してバリューがリストの辞書データがあります。これをキーとバリューのリストの要素インデックス別に、列を設定したデータフレームを作成したい場合の例です。
上記のことを成す雛形コードは次の通りです。
import pandas as pd
data = {'A': ['1', '2', '3'],
'B': ['4', '5', '6'],
'C': ['7', '8', '9'],
'D': ['10', '11', '12']}
converted_data = {'Key': list(data.keys())}
for key, values in data.items():
for i, value in enumerate(values):
converted_data[f'Val{i+1}'] = converted_data.get(f'Val{i+1}', []) + [value]
df = pd.DataFrame(converted_data)
df
■その3. 下図のように、キーに対してバリューが複数のリストの辞書データがあります。これをキーとバリューのリスト数別に、列を設定したデータフレームを作成したい場合の例です。
上記のことを成す雛形コードは次の通りです。
import pandas as pd
data_dict = {
"A": ([1, 2, 3], [4, 5, 6]),
"B": ([7, 8, 9], [10, 11, 12]),
"C": ([13, 14, 15], [16, 17, 18]),
}
rows = []
for select_sheet_name, (x_data, y_data) in data_dict.items():
for x, y in zip(x_data, y_data):
rows.append([select_sheet_name, x, y])
df = pd.DataFrame(rows, columns=["category", "x_data", "y_data"])
df
以上
<広告>
リンク
リンク
リンク