「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 配列長が不均一な辞書から Pandas DataFrame を構築するにはどうすればよいですか?

配列長が不均一な辞書から Pandas DataFrame を構築するにはどうすればよいですか?

2024 年 11 月 14 日公開
ブラウズ:741

How to Construct Pandas DataFrames from Dictionaries with Uneven Array Lengths?

配列長が等しくない辞書からのデータフレームの構築

Pandas で長さが等しくない配列を含む辞書を処理するには、カスタマイズされたアプローチが必要です。ディクショナリ内の配列を表す各列を含む DataFrame を作成しようとすると、「配列はすべて同じ長さである必要があります。」という ValueError が発生する可能性があります。

Leveraging Series Objects

これを回避するにはこの問題では、さまざまな長さの配列を保持できる Pandas の Series オブジェクトを利用します。各辞書値を Series に変換することで、配列の長さに関係なく効率的に配列を保存できます。次のコード スニペットは、このアプローチを示しています。

import pandas as pd
import numpy as np

# Sample data generated via a reproducible seed
np.random.seed(2023)
data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])}

# Convert dictionary values to Series objects
series_dict = {k: pd.Series(v) for k, v in data.items()}

# Create DataFrame using these Series objects
df = pd.DataFrame(series_dict)

欠損値の保持

さまざまな長さの配列を操作する場合、短い配列では残りのセルを埋めることができない欠損値が発生することがよくあります。デフォルトでは、Pandas はこれらのギャップを NaN (非数値) 値で埋めます。この動作により、元のデータが保存され、分析に一貫した構造が提供されます。

欠損値の処理の構成

必要に応じて、DataFrame( ) コンストラクター。たとえば、欠損値を NaN ではなくゼロに置き換えるには、次のように missing_values=0 を指定します。

df = pd.DataFrame(series_dict, missing_values=0)

出力例

次の出力は、上で概説したアプローチを使用して作成された DataFrame を示しています。

print(df)
      A         B         C         D         E         F
0  0.711674 -1.076522 -1.502178 -1.519748  0.340619  0.051132
1 -0.324485 -0.325682 -1.379593  2.097329 -1.253501 -0.238061
2 -1.001871 -1.035498 -0.204455  0.892562  0.370788 -0.208009
3  0.236251 -0.426320  0.642125  1.596488  0.455254  0.401304
4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720  0.183169
...       ...       ...       ...       ...       ...       ...
18       NaN       NaN       NaN       NaN       NaN       NaN
19       NaN       NaN       NaN       NaN       NaN       NaN
20       NaN       NaN       NaN       NaN       NaN       NaN
21       NaN       NaN       NaN       NaN       NaN       NaN
22       NaN       NaN       NaN       NaN       NaN       NaN
23 rows × 6 columns

ご覧のとおり、配列が短いと対応するセルに NaN 値が含まれ、目的の表形式を維持しながらデータの包括的な表現が提供されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3