![](/img/trans.png)
[英]python dask dataframes - concatenate groupby.apply output to a single data frame
[英]Python DataFrames putting multipule dataframes into a single Data Frame
import pandas.io.data as web
import datetime
import pandas as pd
import matplotlib.pyplot as plt
# Enable inline plotting
%matplotlib inline
start = datetime.datetime(2016, 1, 1)
end = datetime.datetime.now()
Stock_List = ('BHP.Ax','AMP.AX','PRR.AX')
Stock_Code = "BHP.AX"
df_Stock_Code = pd.DataFrame()
Results = pd.DataFrame()
for Stock_Code in Stock_List:
#Queries yahoo website for asx code froma start and end date
f = web.DataReader(Stock_Code, 'yahoo', start, end)
f['Stock_Code'] = Stock_Code
df_Stock_Code = f
Results = [Results,df_Stock_Code]
df_Results = pd.Concat(Results)
在原始代碼中, df_Stock_Code
被視為數據幀列表。 但是,在for loop
,將當前數據幀分配給它,而不是將最新數據幀附加到它。
結果是,在串聯步驟中, df_Stock_Code
只是一個單個數據幀,引用了Stock_List
的最后一個庫存。 Results
也從未在循環中使用,它只是從開始初始化時起的空數據框。
嘗試以下方法:
start = datetime.datetime(2016, 1, 1)
end = datetime.datetime.now()
Stock_List = ('BHP.Ax','AMP.AX','PRR.AX')
Stock_Code = "BHP.AX"
df_Stock_Code = pd.DataFrame()
Results = []
for Stock_Code in Stock_List:
#Queries yahoo website for asx code froma start and end date
f = web.DataReader(Stock_Code, 'yahoo', start, end)
f['Stock_Code'] = Stock_Code
df_Stock_Code = Results.append(f)
df_Results = pd.concat(Results)
print df_Results
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.