Pandas:堆叠列后如何恢复数据值

时间:2017-08-12 19:25:31

标签: python database pandas

我有一个包含3列的数据框,所有列都包含数值。我使用第一列索引数据帧,并堆叠结果数据帧。

df.columns = ['Timestamp','X','Y']
df = df.set_index('Timestamp')
df_1 = pd.DataFrame(df.stack())

现在,我想绘制数值。但似乎数字值的同一性丢失了。当我发出以下命令时

plt.plot(df_1);plt.show()

我收到以下错误:

ValueError: setting an array element with a sequence.

2 个答案:

答案 0 :(得分:0)

如果您只想在时间序列中绘制XY值,则不需要stack()

import numpy as np
import pandas as pd

# sample data
dates = pd.date_range('2016','2017',freq='M')
data = {'X': np.random.random(size=len(dates)), 
        'Y':np.random.random(size=len(dates))}
df = pd.DataFrame(data, index=dates)
df.index = df.index.rename('timestamp')

                   X         Y
timestamp                     
2016-01-31  0.006331  0.757617
2016-02-29  0.802825  0.649958
2016-03-31  0.574478  0.952331
2016-04-30  0.354422  0.197825
2016-05-31  0.619783  0.618860
2016-06-30  0.889533  0.120012
2016-07-31  0.216237  0.838509
2016-08-31  0.610442  0.921350
2016-09-30  0.393746  0.285434
2016-10-31  0.409300  0.722278
2016-11-30  0.607809  0.176804
2016-12-31  0.636723  0.213197

现在只需使用plot()

df.plot()

time series plot

答案 1 :(得分:0)

只需使用我认为可以解决问题的df_1.plot()