使用lambda表达式重置Pandas Series的索引

3

我有一个Pandas系列,ts。

Date
2020-06-02    10.02
2020-06-03    10.45
2020-06-04    10.95
2020-06-05    11.23

为了绘图,我将索引转换为字符串,首先将其转换为数据框,然后应用lambda表达式,并将其作为Pandas系列提取出来。
dfn = ts.to_frame()
dfn.index = dfn.reset_index().apply(lambda x: x['Date'].strftime('%Y-%m-%d'), axis=1)
tsn = dfn.iloc[:, 0]

有更有效率的方法吗?

1个回答

2
您可以使用 lambda 函数将索引的格式更改为 rename:
ts = ts.rename(lambda x: x.strftime('%Y-%m-%d'))

还有一种想法是使用 Series 构造函数和 DatetimeIndex.strftime

ts = pd.Series(ts.to_numpy(), index=ts.index.strftime('%Y-%m-%d'))

print (ts)
Date
2020-06-02    10.02
2020-06-03    10.45
2020-06-04    10.95
2020-06-05    11.23
dtype: float64

print (ts.index)
Index(['2020-06-02', '2020-06-03', '2020-06-04', '2020-06-05'], dtype='object', name='Date')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接