合并 csv 文件列和名称列

Merge csv file columns and name columns

我正在尝试合并 ETF 数据的多个 csv 文件。这些 csv 文件具有以下数据结构。

           Date     Open   High    Low  Close  Volume
0      31/12/2018  16.00  16.22  15.83  16.22  113550
1      28/12/2018  16.59  16.60  16.22  16.22  196076
2      27/12/2018  17.04  17.10  16.66  16.66   77764
3      24/12/2018  18.12  18.16  17.50  17.51  137047
4      21/12/2018  17.33  18.00  17.20  17.74  162391
5      20/12/2018  17.13  17.42  16.90  17.42  118405

我已经使用 glob 将所有 csv 文件读取到一个数组中。

import glob
#To read all csv files
files = glob.glob('*.csv')

文件[]的输出如下所示。

['BBOZ.csv', 'CORE.csv', 'DJRE.csv', 'ETPMAG.csv', 'ETPMPD.csv', 'ETPMPM.csv', 'GOLD.csv', 'HACK.csv', 'IGB.csv', 'IJR.csv', 'IXJ.csv', 'MOAT.csv', 'MVS.csv', 'NDQ.csv', 'OZR.csv', 'SPY.csv', 'STW.csv', 'TECH.csv', 'USD.csv', 'VAE.csv', 'VAP.csv', 'VAS.csv', 'VDHG.csv', 'VGE.csv', 'VGS.csv', 'VTS.csv', 'YANK.csv', 'ZUSD.csv']

每个 csv 文件都是一个 ETF 符号

我想创建一个数据框,它从每个 csv 文件中获取 ['Close'] 列,并将其组合成一个数据框,其中的股票代码为每列由每个符号的接近值填充日期作为第一列

所以输出看起来像这样:

Date       BBOZ CORE DJRE ETPMAG ETPMPD .... ZUSD
31/12/2018 16   17   18   19     20     ...  21
30/12/2018 16   17   18   19     20     ...  22
29/12/2018 16   17   18   19     20     ...  23
28/12/2018 16   17   18   19     20     ...  24

Stock tables

等等

我对如何创建该数据框感到困惑。

您可以将列加载到字典中,然后将其传递给 pd.concat:

import glob

col_list = {}
for fname in glob.iglob('*.csv'):
    base, _ = os.path.splitext(fname)
    col_list[base] = pd.read_csv(fname, usecols=['Close'], squeeze=True)

pd.concat(col_list, axis=1)