从多个 csv 文件中提取数据并使用 pandas 准备一个数据框

extract data from multiple csv files and prepare one dataframe using pandas

我有多个 CSV 文件,其中每个文件中有近 1k+ 行,只有 2 列,每个文件的第一列对于每个 CSV 文件都是相似的,但第二列是特定于每个其他值的例如摩托车发动机容量、气缸、功率、燃料、成本等(这些值在不同的 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

它没有为其他列提供正确的输出,它只是为第一个文件提供正确的输出,无论它需要什么,其余的输出为 NaN。我在这里做错了什么

尝试:

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