📜  如何将多个数据文件读入 Pandas?

📅  最后修改于: 2022-05-13 01:54:55.745000             🧑  作者: Mango

如何将多个数据文件读入 Pandas?

在这篇文章中,我们将看到如何将多个数据文件读入pandas,数据文件有多种类型,这里有几种使用Python的pandas包读取多个文件的方法。

演示文件可以从这里下载

方法一:读取CSV文件

如果我们的数据文件是 CSV 格式,则必须使用 read_csv() 方法。 read_csv 将文件路径作为参数。它读取 CSV 的内容。要读取多个 CSV 文件,我们可以使用一个简单的 for 循环并遍历所有文件。

示例:使用 Pandas 读取多个 CSV 文件

在这个例子中,我们列出了我们的数据文件或文件路径,然后使用 for 循环遍历文件路径,for 循环用于遍历列表、元组、字符串等可迭代对象。然后创建一个数据框使用 pd.DataFrame(),使用 pd.concat() 将每个数据帧连接成一个主数据帧,然后使用 to_csv() 方法将最终的主数据帧转换为一个 CSV 文件,该方法采用我们想要创建的新 CSV 文件的名称一个论点。



Python3
# importing pandas
import pandas as pd
  
file_list=['a.csv','b.csv','c.csv']
  
main_dataframe = pd.DataFrame(pd.read_csv(file_list[0]))
  
for i in range(1,len(file_list)):
    data = pd.read_csv(file_list[i])
    df = pd.DataFrame(data)
    main_dataframe = pd.concat([main_dataframe,df],axis=1)
print(main_dataframe)


Python3
# importing packages
import pandas as pd
import glob
  
folder_path = 'Path_of_file/csv_files'
file_list = glob.glob(folder_path + "/*.csv")
main_dataframe = pd.DataFrame(pd.read_csv(file_list[0]))
for i in range(1,len(file_list)):
    data = pd.read_csv(file_list[i])
    df = pd.DataFrame(data)
    main_dataframe = pd.concat([main_dataframe,df],axis=1)
print(main_dataframe)


Python3
# importing packages
import pandas as pd
import glob
  
folder_path = 'Path_/files'
file_list = glob.glob(folder_path + "/*.txt")
main_dataframe = pd.DataFrame(pd.read_table(file_list[0]))
  
for i in range(1,len(file_list)):
    data = pd.read_table(file_list[i])
    df = pd.DataFrame(data)
    main_dataframe = pd.concat([main_dataframe, df], axis = 1)
  
print(main_dataframe)
  
# creating a new csv file with
# the dataframe we created
main_dataframe.to_csv('new_csv1.csv')


输出:

方法二:使用glob包

Python的 glob 模块用于检索匹配指定模式的文件或路径名。

这个程序类似于上面的程序,但唯一的区别是我们使用 glob 包来检索匹配指定模式的文件,而不是使用列表跟踪文件名。

示例:使用 Pandas 和 glob 读取多个 CSV 文件。

蟒蛇3

# importing packages
import pandas as pd
import glob
  
folder_path = 'Path_of_file/csv_files'
file_list = glob.glob(folder_path + "/*.csv")
main_dataframe = pd.DataFrame(pd.read_csv(file_list[0]))
for i in range(1,len(file_list)):
    data = pd.read_csv(file_list[i])
    df = pd.DataFrame(data)
    main_dataframe = pd.concat([main_dataframe,df],axis=1)
print(main_dataframe)

输出:



方法 3:使用 Pandas 读取文本文件:

要读取文本文件,必须使用熊猫的 read_table() 方法。

示例:使用 pandas 和 glob 读取文本文件。

使用 glob 包检索文件或路径名,然后使用 for 循环遍历文件路径。使用 pd.read_table() 方法读取每个文件的内容后创建一个数据框,该方法将文件路径作为参数。使用 pd.concat() 将每个数据帧连接到一个主数据帧,然后使用 to_csv() 方法将最终的主数据帧转换为 CSV 文件,该方法将我们要创建的新 CSV 文件的名称作为参数。

蟒蛇3

# importing packages
import pandas as pd
import glob
  
folder_path = 'Path_/files'
file_list = glob.glob(folder_path + "/*.txt")
main_dataframe = pd.DataFrame(pd.read_table(file_list[0]))
  
for i in range(1,len(file_list)):
    data = pd.read_table(file_list[i])
    df = pd.DataFrame(data)
    main_dataframe = pd.concat([main_dataframe, df], axis = 1)
  
print(main_dataframe)
  
# creating a new csv file with
# the dataframe we created
main_dataframe.to_csv('new_csv1.csv')

输出: