将多个 CSV 文件导入 Pandas 并连接成一个 Dataframe

这篇具有很好参考价值的文章主要介绍了将多个 CSV 文件导入 Pandas 并连接成一个 Dataframe。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本篇文章介绍如何读取多个 .csv 文件并将所有 DataFrame 连接成一个。

本篇文章将使用 Pandas 读取数据文件并创建和组合 DataFrame。


什么是 Pandas

这个包带有广泛的函数来读取各种数据文件以及执行数据操作技术。

要在您的机器上安装 pandas 包,您必须打开命令提示符/终端并运行 pip install pandas


如何使用 Pandas 读取单个 .csv 文件

pandas 包提供了读取 .csv 文件的功能。

>>> import pandas as pd
>>> df = pd.read_csv(filepath_or_buffer)

给定文件路径,pandas 函数 read_csv() 将读取数据文件并返回对象。

>>> type(df)
<class 'pandas.core.frame.DataFrame'>

在 Python 中读取多个 CSV 文件

没有明确的函数可以仅使用 pandas 模块来执行此任务。 但是,我们可以设计一种合理的方法来执行以下操作。

首先,我们需要知道所有数据文件的路径。 如果所有文件都位于一个特定文件夹中,这将很容易。

创建一个列表,其中将存储所有文件的路径和名称。

>>> import pandas as pd
>>> import glob
>>> import os
>>> # This is a raw string containing the path of files
>>> path = r'D:\csv files'
>>> all_files = glob.glob(os.path.join(path, '*.csv'))
>>> all_files
['D:\\csv files\\FILE_1.csv', 'D:\\csv files\\FILE_2.csv']

在上面的代码中,创建了一个包含文件路径的列表。

glob模块

使用 glob 模块查找与模式匹配的文件或路径名。 glob 遵循标准 Unix 路径扩展规则来匹配模式。

无需在外部安装此模块,因为它已包含在 Python 中。 然而,如果你没有这个包,输入 pip install glob2,你应该可以开始了。

要从目录/文件和子目录/子文件中递归检索路径,我们可以使用 glob 模块的函数 glob.glob() 和 glob.iglob()。

语法:

glob.glob(pathname, *, recursive=False)
glob.iglob(pathname, *, recursive=False)

该函数将返回一个包含所有文件路径的列表。

例如,要从给定路径检索所有文件名,请在路径末尾使用星号 *,将其作为字符串传递给 glob.glob('') 函数。

>>> for files in glob.glob(r'D:\csv files\*'):
	    print(files)

D:\csv files\FILE_1.csv
D:\csv files\FILE_2.csv
D:\csv files\textFile1.txt
D:\csv files\textFile2.txt

此外,在星号后指定文件扩展名以执行更有针对性的搜索。

>>> for files in glob.glob(r'D:\csv files\*.csv'):
	    print(files)

D:\csv files\FILE_1.csv
D:\csv files\FILE_2.csv

什么是原始字符串

在 Python 中,原始字符串是通过将 r 或 R 添加到文字字符串而形成的。 反斜杠 () 是 Python 原始字符串中的文字字符。

当我们想要一个带有反斜杠的字符串但不希望它被视为转义字符时,这很有用。

例如:

为了表示制表符和换行符等特殊字符,我们使用反斜杠 () 来表示转义序列的开始。

>>> print("This\tis\nnormal\tstring")
This	is
normal	string

但是,原始字符串将反斜杠 () 视为文字字符。 例如:

>>> print(r"This\tis\nnormal\tstring")
This\tis\nnormal\tstring

os 模块

Python 的 os 模块包含处理操作系统的方法。 os 包含在 Python 的基本实用程序模块中。

该模块提供了一种使用依赖于操作系统的功能的可移植方法。 Python 的 os.path 模块是 os 模块的子模块,用于操作通用路径名。

Python 的 os.path.join() 函数智能地连接一个或多个路径组件。 除最后一个路径组件外,此方法通过在每个非空部分之后恰好放置一个目录分隔符(“/”)来连接不同的路径组件。

在最终要链接的路径组件为空的末尾添加目录分隔符(“/”)。

如果路径组件表示绝对路径并且连接移动到表示绝对路径的组件,则删除所有先前连接的组件。

语法:

os.path.join(path, *path)

要合并不同的路径组件,请使用 os.path.join() 函数。

import os
path = 'Users'
os.path.join(path, 'Desktop', 'data.csv')

输出:

'Users\\Desktop\\data.csv'

在 Python 中连接多个 DataFrame

更进一步,使用从 glob.glob() 函数返回的路径来提取数据并创建数据帧。 随后,我们还将 Pandas 数据框对象附加到列表中。

代码:

dataframes = list()

for dfs in all_files:
	data = pd.read_csv(dfs)
	dataframes.append(data)

创建 dataframes 列表。

>>> dataframes
[dataframe1, dataframe2]

连接 dataframes。

pd.concat(dataframes, ignore_index = True)

pandas.concat() 方法与 Pandas 对象轴一起处理所有密集的串联操作,并将另一个轴上的索引的集合逻辑操作(并集或交集)作为可选的额外操作。

完整代码:文章来源地址https://www.toymoban.com/news/detail-473168.html

## importing the required modules
import pandas as pd
import os
import glob

## Path of the files
path = r'D:\csv files'

## joining the path and creating list of paths
all_files = glob.glob(os.path.join(path, '*.csv'))

dataframes = list()

## reading the data and appending the dataframe
for dfs in all_files:
	data = pd.read_csv(dfs)
	dataframes.append(data)

## Concatenating the dataframes
df = pd.concat(dataframes, ignore_index = True)

到了这里,关于将多个 CSV 文件导入 Pandas 并连接成一个 Dataframe的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python向一个CSV中写入多个Sheet

    在处理数据时,我们经常需要将数据保存到CSV文件中,以便于后续的分析和处理。而有时候,我们需要将不同的数据保存到不同的Sheet中,这个时候就需要使用到Python库中的一些功能来实现。 本文将介绍如何使用Python将多个Sheet写入到一个CSV文件中。我们将使用Pandas和openpyx

    2024年01月16日
    浏览(32)
  • Python 之 Pandas 文件操作和读取 CSV 参数详解

    当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。Panda 提供了多种读取数据的方法,针对不同的文件格式,有以下几种: (1) read_csv() 用于读取文本文件。 (2) read_excel() 用于读取文本文件。 (3) read_json() 用于读取 json 文件。 (

    2024年02月15日
    浏览(33)
  • 【数据处理】Pandas读取CSV文件示例及常用方法(入门)

    查看读取前10行数据 2067 向前填充 指定列的插值填充 使用某数据填充指定列的空值 示例: 类似切片 array([‘SE’, ‘cv’, ‘NW’, ‘NE’], dtype=object) 类似数据库查询中的groupby查询 先添加新的一列按月将数据划分 聚合,对指定的列按月划分求平均值等 min 最小值 max 最大值 sum

    2024年02月06日
    浏览(52)
  • Jupyter:用python读取pandas的csv文件,txt文件和excel文件

    首先打开Anaconda Powershell Prompt,输入豆瓣镜像源相关包的下载地址  pip  install  -i  https://pypi.doubanio.com/simple/  --trusted-host pypi.doubanio.com com后面要有空格,空格后面加pandas,后面好识别pd(pandas是包名,也可以改成其他任意名字,但是尽量不要改,容易出错) 按回车,显示S

    2024年02月04日
    浏览(45)
  • 如何使用pandas读取csv文件中的某一列数据

    使用pandas读取csv文件中的某一列数据,可以这样做: 先导入pandas模块: import pandas as pd 使用 pd.read_csv 函数读取csv文件: df = pd.read_csv(\\\"文件名.csv\\\") 使用 df[\\\"列名\\\"] 读取某一列数据: column = df[\\\"列名\\\"] 例如,如果你有一个csv文件叫做 example.csv ,并且有一列叫做 age ,你可以这样

    2024年02月13日
    浏览(31)
  • 55_Pandas.DataFrame 转换为 JSON 字符串/文件并保存 (to_json)

    使用pandas.DataFrame的方法to_json(),可以将pandas.DataFrame转为JSON格式字符串(str类型)或者输出(保存)为JSON格式文件。 在此,对以下内容进行说明。有关其他参数,请参阅上面的官方文档。 pandas.DataFrame.to_json() 的基本用法 转换为JSON格式字符串 输出(保存)为JSON格式文件 文

    2024年02月15日
    浏览(28)
  • 【工程实践】python 合并多个csv文件

            处理数据时,有多个csv文件需要合并。有两个方法可以实现,第一个是可以通过python提供的pandas模块,借助 pd.concat()实现多个csv文件的合并。第二个是通过linux命令实现。 1-1 获得全部csv文件路径 1-2  查看数据 1-3 合并数据 2-1 合并数据         将所有的csv文件

    2024年02月11日
    浏览(64)
  • hive 导入导出csv文件

    1、导入 将CSV文件导入到hive数据库,具体操作如下, 首先在hive中创建自己的table, 并且设置以逗号分隔。 然后 确定tmp.hb_label_C表的分布式文件路径 最后在linux命令行输入 查看结果 2、导出 使用beeline重定向 同时使用以下方式导出数据带表头

    2024年02月16日
    浏览(34)
  • Python 连接clickhouse数据库以及新建表结构,csv导入数据

    目录 一、Python 连接clickhouse数据库 ◼ clickhouse对外的接口协议通常有两种形式: ◼ 代码实现部分: 二、使用客户端工具DBeaver连接clickhouse ◼ 新建clickhouse表 三、DBeaver 连接clickhouse 用csv文件导入数据 ◼ 导入方式: 方法一:使用DBeaver自带导入数据功能; 方法二:具体方式如

    2024年02月08日
    浏览(81)
  • python,Pandas读取csv文件gbk编码和utf-8编码都报错

    用Pandas读取csv文件,read_csv(),使用默认的 encoding = ‘utf-8’ 和 encoding = ‘gbk’ 都报错,如下图。最终通过 统一编码方式 解决了,操作很简单,但是问题解决的探索过程并不是特别顺利,所以记录一下,给朋友们参考~ 统一编码方式,将csv文件的编码格式改为utf-8。 具体操作

    2024年01月16日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包