Pandas で長さが等しくない配列を含む辞書を処理するには、カスタマイズされたアプローチが必要です。ディクショナリ内の配列を表す各列を含む DataFrame を作成しようとすると、「配列はすべて同じ長さである必要があります。」という ValueError が発生する可能性があります。
これを回避するにはこの問題では、さまざまな長さの配列を保持できる 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 値が生成されます。セルを使用して、必要な表形式を維持しながらデータの包括的な表現を提供します。
以上が配列長が不均一な辞書から Pandas DataFrame を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。