我正在使用以下代码:
import pandas as pd
test3 = pd.Series([1,2,3], index = ['a','b','c'])
test3 = test3.reindex(index = ['f','g','z'])
原本一切顺利,test3的索引为'a' 'b' 'c',对应的值为1、2、3。但是当我重新建立test3的索引时,我发现我的值1、2、3丢失了。为什么会这样?期望的输出应该是:
f 1
g 2
z 3
文档明确说明了这种行为:
使用可选的填充逻辑将Series调整到新索引,将NA / NaN放置在先前索引中没有值的位置
如果您只想覆盖索引值,请执行以下操作:
In [32]:
test3.index = ['f','g','z']
test3
Out[32]:
f 1
g 2
z 3
dtype: int64
ts = pd.Series(data = data['Nasdaq Composite'].values, index = data['Date'])
可以实现。 - EdChum.values
的作用是返回一个 np 数组,这只是一个值的数组,data['Nasdaq Composite']
是一个 Series
,所以 Series
构造函数会尝试重用索引,这就是为什么你的代码失败了。 - EdChum
使用可选的填充逻辑将Series调整为新索引,将NA / NaN放置在先前索引中没有值的位置
。如果您只想覆盖索引值,则可以执行test3.index = ['f','g','z']
。 - EdChum