繁体   English   中英

将多个 csv 文件读入单个 DataFrame

[英]Reading multiple csv files into single DataFrame

我正在尝试读取多个 csv 股票价格文件,所有这些文件都有以下列:日期、时间、开盘价、最高价、最低价、收盘价。 代码是:

import pandas as pd
tickers=['gmk','yandex','sberbank']
ohlc_intraday={}
ohlc_intraday['gmk']=pd.read_csv("gmk_15min.csv",parse_dates=["<DATE>"],dayfirst=True)
ohlc_intraday['yandex']=pd.read_csv("yndx_15min.csv",parse_dates=["<DATE>"],dayfirst=True)
ohlc_intraday['sberbank']=pd.read_csv("sber_15min.csv",parse_dates=["<DATE>"],dayfirst=True)

df=copy.deepcopy(ohlc_intraday)

for i in range(len(tickers)):
    df[tickers[i]] = df[tickers[i]].iloc[:, 2:]
    df[tickers[i]].columns = ['Date','Time',"Open", "High", "Low", "Adj Close", "Volume"]
    df[tickers[i]]['Time']=[x+':00' for x in df['Time']] 

但是,我随后遇到了 KeyError: 'Time'。 似乎列不是键。 是否可以读取或将其转换为 DataFrame 格式,键是股票行情(gmk、yandex、sberbank)和列名,因此我可以使用以下代码轻松提取值

ohlc_intraday['sberbank']['Date'][1]

您可以做的是创建一个 DataFrame,其中有一列指定市场。

import pandas as pd

markets = ["gmk", "yandex", "sberbank"]
markets = ["gmk_15min.csv", "yndx_15min.csv", "sberbank.csv"]

dfs = [pd.read_csv(market, parse_dates=["<DATE>"], dayfirst=True)
       for market in markets]

# add market column to each df
for df in dfs:
    df['market'] = market

# concatenate in one dataframe
df = pd.concat(dfs)

然后以这种方式访问​​您想要的内容

df[df['market'] == 'yandex']['Date'].iloc[1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM