2017-08-12 9 views
0

私は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

あなたが探しているのは 'unstack'ですか? https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.unstack.html –

+0

unstackがスタックの反対の場合は、スタックを探していません。私はXとYの列からのエントリの間で交互になる一連の数字を持つことができたので、データフレームを積み重ねました。 –

+2

おそらくあなたが望むことをするためのよりよい方法があります。あなたはあなたの入力と希望の出力を投稿する必要があります。 –

答えて

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

0

ちょうど私があなたの問題を解決することができると思いdf_1.plot()を使用しています。

関連する問題