4
python3を使用してデータを計算するためのコードを書きました。コードは以下の通りである:データフレームインデックス
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
def data(symbols):
dates = pd.date_range('2016/01/01','2016/12/23')
df=pd.DataFrame(index=dates)
for symbol in symbols:
df_temp=pd.read_csv("/home/furqan/Desktop/Data/{}.csv".format(symbol),
index_col='Date',parse_dates=True,usecols=['Date',"Close"],
na_values = ['nan'])
df_temp=df_temp.rename(columns={'Close':symbol})
df=df.join(df_temp)
df=df.fillna(method='ffill')
df=df.fillna(method='bfill')
df=(df/df.ix[0,: ])
return df
symbols = ['FABL','HINOON']
df=data(symbols)
print(df)
p_value=(np.zeros((2,2),dtype="float"))
p_value[0,0]=0.5
p_value[1,1]=0.5
print(df.shape[1])
print(p_value.shape[0])
df=np.dot(df,p_value)
print(df.shape[1])
print(df.shape[0])
print(df)
私はインデックスが消えた二度目のdf
を印刷します。問題は行列の乗算によるものだと私は思う。インデックス作成と列見出しをdf
に戻すにはどうすればよいですか?
試し 'df.dot(p_valueの)'何多分起こっては 'np.dot'がちょうど戻ってnumpyの配列ではなく、DF – EdChum
ガットの行のインデックスを返しているということですが、しかし、それぞれFABLとHINOONでなければならない列ラベルは、それぞれ0と1に置き換えられます。 –
これは、p_valueがnumpyの配列であるため、その配列からdfを作成するか、列の名前を渡すか、たとえば、 'df.columns = ['FABL'、 'HINOON']' – EdChum