Объединение списка Dataframes - PullRequest
       10

Объединение списка Dataframes

0 голосов
/ 26 сентября 2018

У меня есть папка с несколькими .csv-файлами.Каждый содержит данные о времени, максимума, минимума, открытия, объема от объема, объема до закрытия криптовалюты.

Мне удалось загрузить .csvs в список фреймов данных и удалить столбцы Открыть, Высокий, Низкий, Объем от, Объем до , который мне не нужен, оставив мне с Время и Закрыть для каждого фрейма данных.

Теперь я хочу объединить список фреймов данных в один фрейм данных, где индекс начинается с метки времени самой молодой монеты, которая будет йота в этом примере.

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)

Однако я получаю сообщение об ошибке и не могу понять, как достичь своей цели:

Traceback (последний вызов был последним): Файл "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 ", строка 226, в concat return 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 ", строка 3493, в _verify_integrity 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 голосов
/ 26 сентября 2018

join должно работать

Проверять дубликаты значений индексов, так как не знает, как отобразить несколько дубликатов индексов на несколько DF (например, df.index.is_unique)

Удаление дублирующихся значений индекса(например, df.drop_duplicates(inplace=True)) или один из методов здесь должен разрешить его.

...