如何在 pandas 中创建时间序列列并重新编制索引?

how to create a time series column and reindex in pandas?

如何在 pandas 中创建列并重建索引?

我是新 pandas 学习者。我有 5 行数据框如下:

   A     B     C     D
0  2.34  3.16  99.0  3.2
1  2.1   55.5  77.5  1
2  22.1  54    89    33
3  23    1.24  4.7   5
4  45    2.5   8.7   99

我想用新索引 1 到 5 替换索引列 0,1...4。我的预期输出是:

   A     B     C     D
1  2.34  3.16  99.0  3.2
2  2.1   55.5  77.5  1
3  22.1  54    89    33
4  23    1.24  4.7   5
5  45    2.5   8.7   99

我所做的是创建一个新专栏:

new_index = pd.DataFrame({'#': range(1, 5 + 1 ,1)})

然后我尝试重建索引:

df.reindex(new_index)

但是我得到了错误: ValueError: Buffer has wrong number of dimensions (expected 1, got 2)

我应该怎么做才能重新索引以前的索引?谢谢。

使用set_index

In [5081]: df.set_index([range(1, 6)])
Out[5081]:
       A      B     C     D
1   2.34   3.16  99.0   3.2
2   2.10  55.50  77.5   1.0
3  22.10  54.00  89.0  33.0
4  23.00   1.24   4.7   5.0
5  45.00   2.50   8.7  99.0

或设置值df.index

In [5082]: df.index = range(1, 6)

In [5083]: df
Out[5083]:
       A      B     C     D
1   2.34   3.16  99.0   3.2
2   2.10  55.50  77.5   1.0
3  22.10  54.00  89.0  33.0
4  23.00   1.24   4.7   5.0
5  45.00   2.50   8.7  99.0

详情

原df

In [5085]: df
Out[5085]:
       A      B     C     D
0   2.34   3.16  99.0   3.2
1   2.10  55.50  77.5   1.0
2  22.10  54.00  89.0  33.0
3  23.00   1.24   4.7   5.0
4  45.00   2.50   8.7  99.0

你需要.values

df.index=df.index.values+1
df
Out[141]: 
       A      B     C     D
1   2.34   3.16  99.0   3.2
2   2.10  55.50  77.5   1.0
3  22.10  54.00  89.0  33.0
4  23.00   1.24   4.7   5.0
5  45.00   2.50   8.7  99.0

根据零:

df.index += 1