如何将多个 CSV 文件合并到一个 Pandas 数据框中?
在数据分析过程中使用 CSV 文件时,我们经常需要处理大型数据集。有时,单个 CSV 文件可能不包含您需要的所有数据。在这种情况下,需要将这些文件合并到一个数据框中。幸运的是,Pandas 库为我们提供了多种方法,例如合并、连接和连接,使这成为可能。通过下面给出的示例,我们将学习如何使用 Pandas 组合 CSV 文件。
使用的文件:
第一个 CSV –
第二个 CSV –
第三个 CSV –
方法一:按名称合并
让我们首先了解上面给出的程序中使用的每个方法:
- pd.concat(): 此方法沿行轴或列轴缝合提供的数据集。它将数据框对象作为参数。除此之外,它还可以采用其他参数,例如轴、ignore_index 等。
- map(函数, iterable) :它为 iterables 中的每一项执行指定的函数。在上面的示例中, pd.read_csv()函数应用于给定列表中的所有 CSV 文件。
方法:
- 首先,我们导入 Pandas。
- 使用pd.read_csv() (函数), map函数读取我们传递的所有 CSV 文件(可迭代对象) 。现在, pd.concat()将这些映射的 CSV 文件作为参数,并沿行轴(默认)将它们拼接在一起。如果我们希望沿列水平合并它们,我们可以传递axis=1 。此外, ignore_index = True为合并的数据帧设置连续索引值。
- 下面给出的图像显示了 mydata.csv、mydata1.csv 和合并的数据框。
例子:
Python3
# importing pandas
import pandas as pd
# merging two csv files
df = pd.concat(
map(pd.read_csv, ['mydata.csv', 'mydata1.csv']), ignore_index=True)
print(df)
Python3
# importing libraries
import pandas as pd
import glob
import os
# merging the files
joined_files = os.path.join("/home", "mydata*.csv")
# A list of all joined files is returned
joined_list = glob.glob(joined_files)
# Finally, the files are joined
df = pd.concat(map(pd.read_csv, joined_list), ignore_index=True)
print(df)
输出:
方法二:全部合并
方法:
- os.path.join() 将文件路径作为第一个参数,将要加入的路径组件作为第二个参数。 “ mydata*.csv有助于返回主目录中以“mydata”开头并以 .CSV 结尾的每个文件(使用通配符 *)。
- glob.glob()接受这些连接的文件名并返回所有这些文件的列表。在本例中, mydata.csv 、 mydata1.csv 、 和mydata2.csv被返回。
- 现在,就像前面的例子一样,这个文件列表被映射然后连接起来。
我们可以简单地将这三行代码写成:
df = pd.concat(map(pd.read_csv, glob.glob(os.path.join(“/home”, “mydata*.csv”))), ignore_index= True)
例子:
蟒蛇3
# importing libraries
import pandas as pd
import glob
import os
# merging the files
joined_files = os.path.join("/home", "mydata*.csv")
# A list of all joined files is returned
joined_list = glob.glob(joined_files)
# Finally, the files are joined
df = pd.concat(map(pd.read_csv, joined_list), ignore_index=True)
print(df)
输出: