2012-03-30 22 views
1

を有する第二1を使用して、1つのシリーズを変更最近、私はパンダに2つのシリーズでいくつかの作業をやってる:パンダ:同じインデックス

  • 最初のシリーズは、第二シリーズが含まれている純粋な数値データ
  • が含まれていますカテゴリデータ:「プラス」、「マイナス」、およびNaN。

例データ:

first_series = pandas.Series([0.000003, 0.004991, 0.004991]) 
second_series = pandas.Series(["Plus", "Minus", np.nan], dtype="object", 
           index=first_series.index) 

(現実世界のシナリオでは、第2シリーズは、プログラムで最初のものと同じインデックスを使用して構築されているが、ここではそれだけで単純化した例です)

私が最初にいくつかの操作をやってる:

first_series = np.log2(1/first_series) 

それから私は、対応する「Mの記号を(-1を乗算)を反転する必要があるだろうinus "の項目を入力し、NaNに、第2シリーズの文字はNaNになります。

後半はOK作品:

first_series[np.invert(second_series.notnull())] = np.nan 

print first_series 

0 18.567557 
1  7.646459 
2   NaN 
Name: Example data 

は、しかし、私は一種の元の部分とのこだわっています。最初のシリーズのサインを切り替えるには、どのようにして2番目のシリーズの情報を使用することができますか(同じインデックスの場合)参考として

は、適用後に、first_seriesは次のようになるはずです。

0 18.567557 
1 -7.646459 
2   NaN 
Name: Example data 

答えて

2
first_series[second_series == 'Minus'] *= -1 
first_series[second_series.isnull()] = np.nan 

あなたに与えます:

0 18.346606 
1 -7.646455 
2   NaN 
+0

をそれは私が「パンダから現在のチェックアウトでは動作しません。を使用しています。私はバグを報告します。 – Einar

関連する問題