首页 > 解决方案 > Pandas - 如何绘制相对值

问题描述

我正在尝试在 x 轴上绘制时间。我希望绘制相对时间而不是时间戳。

    data = {'Person':['A', 'A', 'A', 'A','A','A','A'], 'timestamp':[1591828693236, 1591828693237, 1591828693266, 1591828693271, 1591828693294, 1591828693297,1591828693307] ,'wage':[10,15,17,30,60,15,55]}
    df = pd.DataFrame(data)  

    df = df.groupby(['Person'])['wage'].cumsum()
    df.plot(x='timestamp',y=['wage']) 

这绘制了带有累积工资的原始时间戳。如何获得 x 轴上的相对时间戳?

标签: pythonpandas

解决方案


从 Series 中减去 Series 的第一个值,并将其设置为 DataFrame 的索引。

data = {'Person':['A', 'A', 'A', 'A','A','A','A'], 'timestamp':[1591828693236, 1591828693237, 1591828693266, 1591828693271, 1591828693294, 1591828693297,1591828693307] ,'wage':[10,15,17,30,60,15,55]}
df = pd.DataFrame(data)  
df.index = df['timestamp'] - df.loc[0,'timestamp']
gb = df.groupby(['Person'])['wage'].cumsum()
gb.plot(x='timestamp',y=['wage'])

推荐阅读