我有一个包含多个.csv文件的文件夹。每个都包含有关加密货币的时间,高,低,开盘,Volumefrom,Volumeto,Close 的数据。
我设法将.csvs加载到数据帧列表中,并删除了不需要的列 Open,High,Low,Volumefrom,Volumeto ,使我留了 Time 和 Close 每个数据框。
现在,我想将数据帧列表组合为一个数据帧,其中索引以最年轻硬币的时间戳记开始,在此示例中为 iota 。
这是我到目前为止编写的代码:
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)
答案 0 :(得分:0)
join
应该可以工作
检查重复索引值,因为它不知道如何跨多个DF(例如df.index.is_unique
)映射多个重复索引
删除重复的索引值(例如df.drop_duplicates(inplace=True)
)或方法here之一可以解决该问题。