Python では、各エントリが Numpy 配列を保持する辞書から DataFrame を作成できます。ただし、配列の長さがエントリ間で異なる場合、問題が発生します。デフォルトでは、Pandas は均一な長さの配列を必要とするため、「ValueError: 配列はすべて同じ長さである必要があります。」のようなエラーが発生します。
長さの不一致の克服
対処方法この問題では、Pandas の機能を活用して、NaN (Not-a-Number) 値を欠損データのプレースホルダーとして使用できます。これを利用することで、異なる長さの列を含む DataFrame を効果的に作成できます。
これを実現するには、各辞書エントリを、欠損値をシームレスに処理できる 1 次元配列である Pandas シリーズに変換できます。辞書項目をジェネレーター式でラップし、Series コンストラクターを使用することで、Series オブジェクトの辞書を作成できます。
import pandas as pd import numpy as np # Sample data with uneven array lengths data = { 'A': np.random.randn(5), 'B': np.random.randn(8), 'C': np.random.randn(4) } # Convert dictionary items to Series series_dict = dict((k, pd.Series(v)) for k, v in data.items()) # Create DataFrame from the dictionary of Series df = pd.DataFrame(series_dict)
結果:
In [1]: df Out[1]: A B C 0 1.162543 1.681243 0.191287 1 0.459621 -0.141198 -0.109864 2 -0.866704 -0.128677 -0.511496 3 1.222436 -0.371449 -0.705894 4 -0.980584 1.255133 NaN 5 NaN -0.351051 NaN 6 NaN 0.443017 NaN 7 NaN -1.053693 NaN
明らかなように、DataFrame には配列の長さが異なる欠損値 (NaN) が含まれているため、さまざまな配列長の辞書から異なる列長の DataFrame を作成できます。
以上がさまざまな配列長のディクショナリから Pandas DataFrame を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。