我有一个包含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.
答案 0 :(得分:0)
如果您只想在时间序列中绘制X
和Y
值,则不需要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()
答案 1 :(得分:0)
只需使用我认为可以解决问题的df_1.plot()
。