1

最近、私はパンダの2つのシリーズでいくつかの作業を行っています。

  • 最初のシリーズには、純粋な数値データが含まれています
  • 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)

NaN次に、対応する「マイナス」エントリの符号を反転(-1で乗算)し、2番目のシリーズのエントリに目を向ける必要がありNaNます。

後者の部分は問題なく機能します。

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
4

1 に答える 1

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

あなたにあげる:

0    18.346606
1    -7.646455
2          NaN
于 2012-03-30T10:46:02.800 に答える