我该如何将 Pandas Series 的索引值从默认的整数值更改为我拥有的列表中的值?
例如:
x = pd.Series([421, 122, 275, 847, 175])
index_values = ['2014-01-01', '2014-01-02', '2014-01-03', '2014-01-04',
'2014-01-05']
我应该如何让index_values
列表中的日期成为我创建的Series的索引?
set_axis()
似乎不起作用。例如,尝试使用s=pd.Series(range(5))
创建一个新系列,然后设置一个日期时间索引为pd.date_range('2020-01-01', periods=5, freq='1D')
。然后检查s.index
的值。使用set_axis()
,s.index
是一个RangeIndex
,但使用.index = ...
,它是一个预期的DatetimeIndex
。 - Jack Ms = pd.Series(range(5)); i = pd.date_range('2020-01-01', periods=5, freq='1D'); s = s.set_axis(i); print(s.index)
- tdys.set_axis(i)
而没有将s
重新赋值为s = s.set_axis(i)
。如果你不重新赋值,你需要使用s.set_axis(i, inplace=True)
,但请注意,inplace
不被推荐使用并且最终会被弃用。详见此链接。 - tdy.index
的赋值操作会检查错误(或者至少检查长度不匹配的情况,例如:ValueError: Length mismatch: Expected axis has 5 elements, new values have 7 elements
)。我不确定这个功能是从什么时候开始添加的,但我使用的是 Pandas 1.4.3 版本。 - wjandrea