合并熊猫中的多个数据框

时间:2018-10-03 15:11:27

标签: python pandas time-series

我有多对货币对的历史数据,我正在尝试使用货币对的名称获取其收盘价,并希望将其与匹配的日期和时间合并。这是我到目前为止所做的:

def load_pairs(arr, period):
    a = arr[0]
    file = '../datas/forex_feed/{} {}.csv'.format(period, a)
    df = pd.read_csv(file, index_col=["Date"], usecols=["Date", "Close"])
    df.rename(columns={'Close':a}, inplace=True)
    for sym in arr:
        if sym == a:
            continue
        file = '../datas/forex_feed/{} {}.csv'.format(period, sym)
        db = pd.read_csv(file, index_col=["Date"], usecols=["Date", "Close"])
        db.rename(columns={'Close':sym}, inplace=True)
        df.join(db)
    print(df.tail())

pairs = 'XAUUSD,XAGUSD,AUDUSD,EURUSD,GBPUSD,EURGBP,EURJPY,GBPJPY,USDCAD,EURCAD,USDCHF,USDZAR,USDJPY,USDTRY,EURTRY,EURAUD,EURCAD,EURCHF,GBPAUD,GBPCAD,GBPCHF,NZDJPY,NZDUSD'
df = load_pairs(pairs.split(','), '15m')

                       XAUUSD
Date                         
2018-09-27 13:15:00  1195.475
2018-09-27 13:30:00  1195.702
2018-09-27 13:45:00  1195.612
2018-09-27 14:00:00  1195.183
2018-09-27 14:15:00  1195.027

以某种方式,它仅加载XAUUSD,而不会合并其余文件。您可以在下面找到预期的输出:

                       XAUUSD      XAGUSD      AUDUSD
Date                         
2018-09-27 13:15:00  1195.475    14.74500     0.71548
2018-09-27 13:30:00  1195.702    14.74512     0.715
2018-09-27 13:45:00  1195.612    14.74572     0.71501
2018-09-27 14:00:00  1195.183    14.74608     0.71595
2018-09-27 14:15:00  1195.027    14.74501     0.71570

我在这里做什么错了?

0 个答案:

没有答案