pandas:使用具有相同索引的第二个系列更改一个系列

时间:2012-03-30 10:31:00

标签: python pandas

最近我在两个大熊猫系列中做了一些工作:

  • 第一个系列包含纯数字数据
  • 第二个系列包含分类数据:“加号”,“减号”和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)

(在现实世界的场景中,第二个系列使用与第一个系列相同的索引以编程方式构建,但这只是一个简化示例)

我先做一些操作:

first_series = np.log2(1 / first_series)

然后我需要反转相应“减号”条目的符号(乘以-1),然后转到NaN第二个系列中的NaN {/ 1}}。

后一部分可行:

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

print first_series

0    18.567557
1     7.646459
2          NaN
Name: Example data

但是我对前一部分感到困惑。如何使用第二系列中的信息(假设它们具有相同的索引)来切换第一个系列中的符号?

作为参考,在申请之后,first_series应该是这样的:

0    18.567557
1    -7.646459
2          NaN
Name: Example data

1 个答案:

答案 0 :(得分:2)

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

给你:

0    18.346606
1    -7.646455
2          NaN