Извлеките данные из нескольких файлов csv и подготовьте один фрейм данных с помощью pandas

У меня есть несколько CSV-файлов, в каждом из которых почти 1000 строк и всего 2 столбца, 1-й столбец каждого файла одинаков для каждого CSV-файла, но 2-й столбец специфичен для каждого другого значения, например, для емкости двигателя мотоцикла. , Цилиндры, Мощность, Топливо, Стоимость и т. д. (эти значения доступны по отдельности в разных файлах CSV). Я попытался извлечь данные из всех файлов CSV и добавить их в список, но не получил правильного ответа. Ниже приведен метод, который я пробовал

import numpy as np
import pandas as pd
import glob
csvs = glob.glob('D:/Project/*.csv')
print(csvs)
a = []
for proj in csvs:
    df1 = pd.read_csv(proj, index_col=None, header = 0)
    a.append(df1)
print(a)#Check Output 1
df2 = pd.concat(a, axis=0, ignore_index=True)
df2.head()#check output 2

#Вывод 1

[Unnamed: 0    engine capacity
0         0    1497.169492
1         1    1166.142857
2         2    1537.406593
3         3    1219.653846
4         4    1995.777778
[1035 rows x 2 columns],
Unnamed: 0    fuel
0        0   petrol
1        1   petrol
2        2  electrical
3        3  electrical
4        4  electrical
[1035 rows x 2 columns],
Unnamed: 0    power
0        0   57.342
1        1   64.232
2        2   56.405
3        3   98.109
4        4   101.455
[1035 rows x 2 columns]]

#Вывод 2

Unnamed: 0  enginecapacity    fuel      power
  0      0     1500.134       NaN        NaN
  1      1     1299.132       NaN        NaN
  2      2     1200.455       NaN        NaN
  3      3     1700.456       NaN        NaN
  4      4     1430.232       NaN        NaN

Он не дает правильный вывод для других столбцов, он просто дает правильный вывод для 1-го файла, какой бы он ни был, а для остальных он дает NaN. В чем моя ошибка, что я здесь делаю?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пытаться:

data = []
for proj in csvs:
    df1 = pd.read_csv(proj, index_col=0, header=0)
    data.append(df1)
df2 = pd.concat(data, axis=1)

Выход:

>>> df2
   engine capacity        fuel    power
0      1497.169492      petrol   57.342
1      1166.142857      petrol   64.232
2      1537.406593  electrical   56.405
3      1219.653846  electrical   98.109
4      1995.777778  electrical  101.455

Другие вопросы по теме