0
点赞
收藏
分享

微信扫一扫

数据分析篇--数据文件整合

源码之路 2022-02-15 阅读 72

本章目录

一、开篇介绍

在这里插入图片描述

1. 需求

\qquad 利用Python对本地得多个Excel文件进行合并处理。

2. Python所用包

\qquad pandas、os、sys

二、功能代码

在这里插入图片描述

2.1. 本地文件获取

2.1.1 对于本地多层文件夹中文件整合

\qquad 1. os.walk()介绍

描述:Directory tree generator.
样例: os.walk(top, topdown=True, onerror=None, followlinks=False)
  • top – 文件夹路径,, 返回的是一个三元组(root,dirs,files)。
    • root: 当前文件夹目录
    • dirs: root文件夹下的文件夹,返回一个列表
    • files: root文件夹下的文件夹,返回一个列表
  • topdown --可选,默认为 True,优先遍历外层文件夹,否则优先遍历最内层文件夹。
  • 其他可选暂不介绍,自行了解

\qquad 2. os.walk()代码
在这里插入图片描述

import os
for root,dirs,files in os.walk(r'D:\父文件夹',topdown=True):
    print(root,'    ',dirs,'    ',files)
for root,dirs,files in os.walk(r'D:\父文件夹',topdown=False,followlinks=False):
    print(root,'    ',dirs,'    ',files)
for root,dirs,files in os.walk(r'D:\父文件夹',topdown=False):
    print(root,'    ',dirs,'    ',files)

2.1.2 对于本地单层文件夹中文件整合

\qquad os.listdir()不做介绍,对遍历后的文件进行筛选(拼接哪些文件名的文件),如下是获取path文件下以A开头,以.xlsx结尾的文件,filelist 是一个列表,内容为文件名加上文件后缀。

filelist = [item for item in os.listdir(path) if item.endswith('.xlsx') and item.startswith('A')]

2.1.3 文件的路径拼接

\qquad os.path.join()不做介绍
在这里插入图片描述

2.2. 本地文件拼接

2.1.1 将文件路径存储在列表中

\qquad 在文件拼接之前,我们首先需要将文件的路径存储在一个列表中。
在这里插入图片描述

import os
file_path = []
for root,dirs,files in os.walk(r'D:\父文件夹',topdown=True):
    print(root,dirs,files)
    for file in files:
        file_path.append(os.path.join(root,file))

2.1.1 利用pandas读取文件

\qquad 此时已经将文件的路径存储在一个列表中,随后就是读取Excel文件数据。首先先对单个文件读取

\qquad 1. pandas.read_excel()介绍

描述: Read an Excel file into a pandas DataFrame.
样例: pd.read_excel(
    io,
    sheet_name=0,
    header=0,
    names=None,
    index_col=None,
    usecols=None,
    dtype=None,
    converters=None,
    true_values=None,
    false_values=None,
    skiprows=None,
    nrows=None,
    na_values=None,
    keep_default_na=True,
)
  • io – excel文件路径。
  • sheet_name选择excel文件中的sheet_name,值为0,1,2…或者sheet名
  • header用来指定哪一行作为列名的,默认是第0行。
  • names自定义列名,列表形式。
  • index_col指定用哪一列做为行索引。
  • usecols读取数据时,读取指定列。
  • dtype针对每一列设置不同的数据类型。
  • converters对指定列的数据进行指定函数的处理,传入参数为列名与函数组成的字典。
  • true_values将指定的文本转换为True,默认为None,列表。
  • false_values将指定的文本转换为False,默认为None,列表。
  • skiprows跳过指定的行。
  • nrows指定需要读取前多少行,通常用于较大的数据文件中。
  • na_values指定某些列的某些值为NaN。
  • keep_default_na表示导入数据时是否导入空值。其他可选暂不介绍,详细的自行了解
    在这里插入图片描述

2.1.1 利用pandas合并文件

\qquad 此时能够以各种方式读取到单个文件了,接着就是如何拼接,以及拼接的方式了。一开始数据的整个,每个文件的格式都是相同,所以这里介绍最常见的两种方式。

  • 列对其,行拼接 pd.concat([df,df_tem])
  • 行对其,列拼接 pd.concat([df,df_tem],axis=1)
import pandas as pd
df = pd.DataFrame()
for fp in file_path:
    df_tem = pd.read_excel(fp)
    df = pd.concat([df,df_tem])

结言

\qquad 本章到此结束,涉及到的内容不深,如有错误,请见谅,评论更正。

举报

相关推荐

0 条评论