想要将多个数据框中的某些列添加到一个特定的数据框中

时间:2019-04-01 18:09:45

标签: python pandas

因此,基本上我已经下载了多种股票数据并以CSV格式存储,因此我为此创建了一个函数,并将一个股票名称列表传递给了该用户定义的函数。因此,一个股票数据具有多个列,例如开盘价,收盘价等,所以我要从存储在新数据框中的每个股票df的收盘价列中,将股票名称作为标题转到新数据框中包含收盘价的列

所以我创建了一个用于下载多个股票数据的函数,并传递了一个股票名称列表以获取所需的数据,该函数以CSV格式存储它们 2)然后我尝试创建一个for循环,该循环读取每个股票数据CSV文件,并尝试从每个股票数据框中仅选择平仓列,并将其存储在另一个空数据框中,因此我有一个股票收盘价及其数据的数据框。列标题作为收盘价的股票名称,因此我成功下载了股票数据,但在2部分中失败

stocks = ['MSFT','IBM', 'GM', 'ACN', 'GOOG']
end=datetime.datetime.now().date() 
start=end-pd.Timedelta(days=365*5) 

def hist_data(stocks):
    stock_df=web.DataReader(stocks,'iex',start,end)
    stock_df['Name']=stocks
    fileName=stocks+'_data.csv'
    stock_df.to_csv(fileName) 


with futures.ThreadPoolExecutor(len(stocks)) as executor:
    result=executor.map(dwnld_data,stocks)
print('completed')

#failing in the code below



close_prices = pd.DataFrame()

for i in stocks:
    df = pd.read_csv(i + '_data.csv')
    df1 = df['close']
    close_prices.append(df1)


#so when I try to print close_prices I get blank output

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

close_prices = pd.DataFrame()

for i in stocks:
    df = pd.read_csv(i + '_data.csv')
    close_prices[i] = df['close']