ホームページ  >  記事  >  バックエンド開発  >  さまざまな配列長のディクショナリから Pandas DataFrame を作成するにはどうすればよいですか?

さまざまな配列長のディクショナリから Pandas DataFrame を作成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 14:20:031033ブラウズ

How to Create a Pandas DataFrame from a Dictionary with Varying Array Lengths?

エントリの長さが不均一な辞書からの DataFrame の作成

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。