首页 > 解决方案 > 使用 lambda 表达式重置 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]

有没有更有效的方法呢?

标签: python-3.xpandaslambdaseries

解决方案


您可以将renamelambda 函数用于索引的 cgange 格式:

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')

推荐阅读