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读取多个文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pandas数据合并的两种实现方法

    Pandas数据合并的两种实现方法

    本文主要介绍了Pandas数据合并的两种实现方法,DataFrame数据合并主要使用merge()方法和concat()方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Python实现图片转字符画的代码实例

    Python实现图片转字符画的代码实例

    今天小编就为大家分享一篇关于Python实现图片转字符画的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Python3 io文本及原始流I/O工具用法详解

    Python3 io文本及原始流I/O工具用法详解

    这篇文章主要介绍了Python3 io文本及原始流I/O工具用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python编程中简洁优雅的推导式示例详解

    python编程中简洁优雅的推导式示例详解

    这篇文章主要为大家介绍了python编程中简洁优雅的推导式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Python的两种异步HTTP请求详解

    Python的两种异步HTTP请求详解

    这篇文章主要介绍了Python的两种异步HTTP请求,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • python去除空格和换行符的实现方法(推荐)

    python去除空格和换行符的实现方法(推荐)

    下面小编就为大家带来一篇python去除空格和换行符的实现方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • pymysql实现增删改查的操作指南(python)

    pymysql实现增删改查的操作指南(python)

    python中可以使用pymysql来MySQL数据库的连接,并实现数据库的各种操作,这篇文章主要给大家介绍了关于pymsql实现增删改查的相关资料,需要的朋友可以参考下
    2021-05-05
  • 用Python创建简易网站图文教程

    用Python创建简易网站图文教程

    今天给大家带来的是关于Python的相关知识,文章围绕着用Python创建简易网站展开,文中有非常详细的介绍及图文示例,需要的朋友可以参考下
    2021-06-06
  • python如何选取excel文件满足特定条件的行

    python如何选取excel文件满足特定条件的行

    这篇文章主要介绍了python如何选取excel文件满足特定条件的行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Python常用数字处理基本操作汇总

    Python常用数字处理基本操作汇总

    这篇文章主要介绍了Python常用数字处理基本操作汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论