从多个 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
我有多个 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