23

「Python For Data Analysis」を使用していますが、特定の機能がわかりません。2 つの pandas シリーズ オブジェクトを追加すると、インデックス付きデータが自動的に整列されますが、1 つのオブジェクトにそのインデックスが含まれていない場合は、NaN として返されます。たとえば、本から:

a = Series([35000,71000,16000,5000],index=['Ohio','Texas','Oregon','Utah'])
b = Series([NaN,71000,16000,35000],index=['California', 'Texas', 'Oregon', 'Ohio'])

結果:

    In [63]: a
    Out[63]: Ohio          35000
             Texas         71000
             Oregon        16000
             Utah           5000
    In [64]: b
    Out[64]: California      NaN
             Texas         71000
             Oregon        16000
             Ohio          35000

これらを足し合わせると・・・こんな感じ。

    In [65]: a+b
    Out[65]: California       NaN
             Ohio           70000
             Oregon         32000
             Texas         142000
             Utah             NaN

では、なぜユタ州の値は 500 ではなく NaN なのですか? 500+NaN=500のようです。何を与える?私は何かが欠けています、説明してください。

アップデート:

    In [92]: # fill NaN with zero
             b = b.fillna(0)
             b
    Out[92]: California        0
             Texas         71000
             Oregon        16000
             Ohio          35000

    In [93]: a
    Out[93]: Ohio      35000
             Texas     71000
             Oregon    16000
             Utah       5000

    In [94]: # a is still good
             a+b
    Out[94]: California       NaN
             Ohio           70000
             Oregon         32000
             Texas         142000 
             Utah             NaN
4

3 に答える 3

31

Pandas は 500+NaN=500 を想定していませんが、そうするように求めるのは簡単です:

a.add(b, fill_value=0)
于 2013-04-24T21:47:26.403 に答える