合并数据框列表

时间:2018-09-25 21:34:13

标签: python-3.x pandas indexing concat

我有一个包含多个.csv文件的文件夹。每个都包含有关加密货币的时间,高,低,开盘,Volumefrom,Volumeto,Close 的数据。

我设法将.csvs加载到数据帧列表中,并删除了不需要的列 Open,High,Low,Volumefrom,Volumeto ,使我留了 Time Close 每个数据框。

现在,我想将数据帧列表组合为一个数据帧,其中索引以最年轻硬币的时间戳记开始,在此示例中为 iota

Currency Data Frames

这是我到目前为止编写的代码:

import pandas as pd
import os

# Path to my folder
PATH_COINS = r"C:\Users\...\Coins"

# creating a path for each of the .csv-files and saving it into a list
namelist = [name for name in os.listdir(PATH_COINS)]
path_lists = [os.path.join(PATH_COINS, path) for path in namelist]

# creating the dataframes and saving them into a list
dfs = [pd.read_csv(k, index_col=0) for k in path_lists]

# dropping unwanted columns 
for num, i in enumerate(dfs):
    i.drop(columns=["Open", "High", "Low", "Volumefrom", "Volumeto"], inplace=True)

# combining the list of dataframes into one dataframe     
pd.concat(dfs, join="inner", axis=1)

但是我收到一个错误消息,但无法弄清楚如何实现我的目标:

  

回溯(最近通话最近):文件   “ C:/Users/Jonas/PycharmProjects/Pandas/main.py”,第16行,在       pd.concat(dfs,join =“ inner”,axis = 1)

     

文件   “ C:\ Users \ Jonas \ PycharmProjects \ Pandas \ venv \ lib \ site-packages \ pandas \ core \ reshape \ concat.py”,   concat中的226行       返回op.get_result()

     

文件   “ C:\ Users \ Jonas \ PycharmProjects \ Pandas \ venv \ lib \ site-packages \ pandas \ core \ reshape \ concat.py”,   第423行,位于get_result中       copy = self.copy)

     

文件   “ C:\ Users \ Jonas \ PycharmProjects \ Pandas \ venv \ lib \ site-packages \ pandas \ core \ internals.py”,   第5425行,在concatenate_block_managers中       返回BlockManager(块,轴)

     

文件   “ C:\ Users \ Jonas \ PycharmProjects \ Pandas \ venv \ lib \ site-packages \ pandas \ core \ internals.py”,   第3282行,在 init 中       self._verify_integrity()

     

文件   “ C:\ Users \ Jonas \ PycharmProjects \ Pandas \ venv \ lib \ site-packages \ pandas \ core \ internals.py”,   _verify_integrity中的第3493行       construction_error(tot_items,block.shape [1:],self.axes)

     

文件   “ C:\ Users \ Jonas \ PycharmProjects \ Pandas \ venv \ lib \ site-packages \ pandas \ core \ internals.py”,   第4843行,在construction_error中       通过,暗示))

     

ValueError:传递的值的形状为(5,8514),索引表示(5,   8490)

1 个答案:

答案 0 :(得分:0)

join应该可以工作

检查重复索引值,因为它不知道如何跨多个DF(例如df.index.is_unique)映射多个重复索引

删除重复的索引值(例如df.drop_duplicates(inplace=True))或方法here之一可以解决该问题。