【问题标题】:Merge csv file columns and name columns合并 csv 文件列和名称列
【发布时间】:2019-02-01 00:04:41
【问题描述】:

我正在尝试为 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')

files[] 的输出如下所示。

['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

我不知道如何创建该数据框。

【问题讨论】:

    标签: python pandas csv dataframe finance


    【解决方案1】:

    您可以将列加载到字典中,然后将其传递给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)
    

    【讨论】:

    • Coldspeed,感谢工作我添加了这个以使用日期作为索引列 col_list[base] = pd.read_csv(fname, header=0, index_col=['Date'],usecols=[' Date','Close'],squeeze=True) 这是正确的做法吗?
    • Edit ** 我试图运行它,它弄乱了日期列 DJRE GOLD IJR NDQ PMGOLD QCB VAP VAS \ 01/02/2005 NaN 54.70 NaN NaN NaN NaN NaN NaN 01/02/2006 NaN 74.89 NaN NaN NaN NaN NaN NaN 01/02/2007 NaN 83.83 NaN NaN NaN NaN NaN NaN 01/02/2008 NaN 103.15 34.370 NaN NaN NaN NaN NaN 01/02/2010 NaN 119.00 NaN NaN NaN NaN NaN 58.47 0/1 /2011 南 129.90 34.500 南 13.40 南 47.182 61.10
    猜你喜欢
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 2017-05-17
    • 2021-12-07
    • 1970-01-01
    • 2019-03-25
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多