Pandas技巧分享之读取多个文件

 更新时间:2023年07月05日 08:55:01   作者:databook  
日常分析数据时,只有单一数据文件的情况其实很少见,更多的情况是,从同一个数据来源定期或不定期的采集了很多数据文件,那么如何读取多个文件呢,下面就和大家简单讲讲

日常分析数据时,只有单一数据文件的情况其实很少见,更多的情况是,我们从同一个数据来源定期或不定期的采集了很多数据文件;或者从不同的数据源采集多种不同格式的数据文件。

在这样的情况下,分析数据之前,需要将不同的数据集合并起来。合并数据一般有两个维度,一是同构的数据集合并后行数增加;一是异构的数据集合并后列数增加。

1. 同构数据集

比如我们采集了3个不同年份的人口统计文件,分别为:

import pandas as pd
fp1 = "population1.csv"
df = pd.read_csv(fp1)
df

import pandas as pd
fp2 = "population2.csv"
df = pd.read_csv(fp2)
df

import pandas as pd
fp3 = "population3.csv"
df = pd.read_csv(fp3)
df

合并所有的数据集可以用 pd.concat 方法,不过一个一个文件读取之后再合并比较麻烦。

如果文件名称有规律的话(一般定期采集的数据集文件,文件名都有一定的规律),可以通过 glob 库(支持通配符匹配)来匹配所有数据文件。

然后利用python代码的灵活性一次合并所有的数据。

from glob import glob
files = sorted(glob("./population[1-3].csv"))
df = pd.concat((pd.read_csv(f) for f in files))
df

这样合并之后,发现索引是有重复的,如果要保持索引的唯一性,可以在合并时指定 ignore_index=True

df = pd.concat((pd.read_csv(f) for f in files), ignore_index=True)
df

2. 异构数据集

异构的数据集指数据结构不一样的数据,一般来自于不同的数据源。

比如:

import pandas as pd
fp1 = "population-total.csv"
df = pd.read_csv(fp1)
df

import pandas as pd
fp2 = "population-man.csv"
df = pd.read_csv(fp2)
df

import pandas as pd
fp3 = "population-woman.csv"
df = pd.read_csv(fp3)
df

合并的方式和前面按行合并类似,区别在于指定 axis=1

from glob import glob
files = sorted(glob("./population-*.csv"))
df = pd.concat((pd.read_csv(f) for f in files), axis=1)
df

合并之后发现有重复的列,对于重复的行,可以简单的通过 drop_duplicates()方法来去重,去除重复的列则需要一些技巧。

df = df.loc[:, ~df.columns.duplicated()]
df

这样就去除了重复的列,完成了异构数据集的合并。

到此这篇关于Pandas技巧分享之读取多个文件的文章就介绍到这了,更多相关Pandas读取多个文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用pymeter操作JMeter的教程详解

    Python使用pymeter操作JMeter的教程详解

    pymeter 是一个 Python 库,它可以以编程方式创建和运行 JMeter 测试计划,下面就跟随小编一起来看看Python如何使用pymeter操作JMeter的吧
    2024-01-01
  • Python实现的飞速中文网小说下载脚本

    Python实现的飞速中文网小说下载脚本

    这篇文章主要介绍了Python实现的飞速中文网小说下载脚本,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • python用模块zlib压缩与解压字符串和文件的方法

    python用模块zlib压缩与解压字符串和文件的方法

    Python标准模块中,有多个模块用于数据的压缩与解压缩,如zipfile,gzip, bz2等等。这篇文章主要给大家介绍了python如何利用模块zlib压缩与解压字符串和文件的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • python实现双色球随机选号

    python实现双色球随机选号

    这篇文章主要为大家详细介绍了python实现双色球随机选号,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 关于自动化测试框架pytest的Fixture固件

    关于自动化测试框架pytest的Fixture固件

    这篇文章主要介绍了关于自动化测试框架pytest的Fixture固件,Fixture它其实就是一些函数,会在执行测试方法/测试函数前后加载运行它们,需要的朋友可以参考下
    2023-03-03
  • Python数据抓取爬虫代理防封IP方法

    Python数据抓取爬虫代理防封IP方法

    在本篇内容里小编给大家分享了关于Python数据抓取爬虫代理防封IP方法讲解,需要的朋友们可以跟着学习下。
    2018-12-12
  • 基于Python实现一个文件相似度检测工具

    基于Python实现一个文件相似度检测工具

    本文介绍基于Python的文件相似度检测工具,支持余弦、Jaccard、编辑距离等算法,具备预处理、阈值判断和健壮性处理,适用于文档查重、代码检测及版本比较,需要的朋友可以参考下
    2025-07-07
  • python使用PIL和matplotlib获取图片像素点并合并解析

    python使用PIL和matplotlib获取图片像素点并合并解析

    这篇文章主要介绍了python使用PIL和matplotlib获取图片像素点并合并解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python中的datetime包与time包包和模块详情

    Python中的datetime包与time包包和模块详情

    这篇文章主要介绍了Python中的datetime包与datetime包和模块详情,文章围绕主题展开详细内容,具有一的的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-02-02
  • 一次搞懂hasattr()/getattr()/setattr()在Python中的应用

    一次搞懂hasattr()/getattr()/setattr()在Python中的应用

    在Python中,hasattr()、getattr()和setattr()是一组内置函数,本文将从入门到精通,全面介绍hasattr()、getattr()和setattr()函数的用法和相关知识点,需要的可以了解下
    2023-08-08

最新评论