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 値が含まれ、目的の表形式を維持しながらデータの包括的な表現が提供されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3