从多个 csv 文件中提取数据并使用 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据从 Pandas 数据帧保存到一个 csv 文件,并附加多个项目

使用 pandas 从 csv 文件中提取数据时出现错误

使用Pandas为来自多个URL的多个CSV文件创建一个数据框

如何将多个数据帧合并为一个并将其输出到pandas中的csv文件中?

Pyspark将多个csv文件读取到一个数据帧中(或RDD?)

使用panda或numpy从一个csv加载多个数据帧

将一个文件夹的多个csv文件加载到一个数据帧中

将多个CSV导入一个数据帧时重复

从一个数据帧中的多个.csv和cbind提取同一列(不同长度)

从 Pandas 数据帧列中提取多个子字段到一个新的数据帧中

根据Pandas中的索引将一个数据帧分为多个

根据Pandas中的公共列将一个数据帧拆分为多个子数据帧

如何将一个CSV中的多个数据帧转换为一个?

使用PowerShell从CSV文件中提取数据

在python中,将具有不同标头的多个CSV读入一个数据帧

如何从文件中提取多个数据并将其存储在csv文件中?

将多个 csv 文件读入单个数据帧并根据原始文件重命名列 - Pandas

将多个csv读取到pandas中的多个数据帧中

将多个csv文件读取(并在每个csv文件中跳过2列)到R中的一个数据帧中?

我可以跨多个 csv 数据帧循环相同的分析,然后将每个数据帧的结果连接到一个表中吗?

使用R将多个数据帧写入.csv文件

用同样的方法转换一个CSV文件的文件夹,然后用python输出多个数据帧

根据多个数据帧的通用时间戳创建一个数据帧

如何从循环中的另一个数据帧创建多个数据帧

如何使用循环从 JSON 中提取多个数据以创建 CSV

Python-从多个Zip文件中提取CSV文件并合并数据

从多个TXT文件中提取数据并在Python中创建摘要CSV文件

如何使用python从另一个文件中的多个文件中提取数据?

多个pandas.dataframe到一个csv文件