Python重新索引

Python重新索引,python,pandas,series,Python,Pandas,Series,以下是我正在使用的代码: 将熊猫作为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 对于这种行为,我们有明确的认识: 使系列符合新索引,可选填充逻辑,放置

以下是我正在使用的代码:

将熊猫作为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
对于这种行为,我们有明确的认识:

使系列符合新索引,可选填充逻辑,放置 前一个索引中没有值的位置中的NA/NaN

如果只想覆盖索引值,请执行以下操作:

In [32]:
test3.index  = ['f','g','z']

test3
Out[32]:
f    1
g    2
z    3
dtype: int64

在这一行为上,我们很清楚:
使用可选的填充逻辑使序列符合新索引,将NA/NaN放置在前一个索引中没有值的位置
如果您只想覆盖索引值,那么就执行
test3.index=['f','g','z']
@EdChum那么我该如何用与以前相同的值填充新索引呢?我理解这一点。我的问题是,我有一个更大的数据框,称为“data”,当我做ts=pd.Series(data=data['Nasdaq Composite',index=data['Date'])时,我会得到一列Nan,在那里我会期望值。因此,我尝试在不放置数据集的情况下创建一个可复制的结果。同样,这与重新索引相同,如果您想基于现有数据创建一个新的序列,则需要展平该序列:
ts=pd.Series(data=data['Nasdaq Composite'].values,index=data['Date'])
可以工作非常感谢我对python非常陌生,.values”业务为我做了这件事。
.values
所做的是返回一个np数组,这只是一个值数组,
数据['Nasdaq Composite']
是一个
系列
所以
系列
ctor将尝试重用索引,这就是代码失败的原因