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