1

最近,我正在处理 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.

后一部分工作正常:

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
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 回答