• ">默认读取
  • ">读取前 n 行
  • ">跳过前 n 行
  • ">指定行读取
  • ">指定列号读取
  • ">指定列名读取
  • ">指定列匹配读取
  • ">读取时设置索引
  • ">读取时设置标题
  • ">读取并处理缺失值
  • ">分块读取
  • ">循环读取数据

    默认读取

    默认读取是最简单的方式,使用 pd.read_csv(‘xxxx.csv’) 即可读取对应文件
    现在尝试使用 pandas 读取当前目录下 r”C:\Users\25569\Desktop\111.xlsx”

    1. import pandas as pd
    2. data = pd.read_csv(r"C:\Users\25569\Desktop\111.xlsx")

    注意
    使用 pandas 读取 CSV 与读取 xlsx 格式的 Excel 文件方法大致相同
    因此下面与 Excel 相关的读取操作均以 xlsx 格式进行介绍

    读取前 n 行

    读取当前目录下 某招聘网站数据.csv 文件的 前20行

    1. data = pd.read_csv("某招聘网站数据.csv",nrows = 20)
    2. print(data)

    跳过前 n 行

    读取当前目录下 某招聘网站数据.csv 文件并 跳过前20行

    1. data = pd.read_csv("某招聘网站数据.csv",skiprows = [i for i in range(1,20)])

    指定行读取

    读取当前目录下 某招聘网站数据.csv 文件中全部偶数行

    1. # 奇数行
    2. data = pd.read_csv('某招聘网站数据.csv', skiprows=lambda x: (x != 0) and not x % 2)
    3. # 偶数行
    4. data = pd.read_excel(r"C:\Users\25569\Desktop\111.xlsx", skiprows=lambda x: (x != 0) and x % 2)

    指定列号读取

    读取当前目录下 某招聘网站数据.csv 文件的第 1、3、5 列

    1. data = pd.read_csv("某招聘网站数据.csv",usecols = [0,2,4])

    指定列名读取

    读取当前目录下 某招聘网站数据.csv 文件的 名称 列

    1. data = pd.read_csv("某招聘网站数据.csv",usecols = ['positionId','positionName','salary'])

    指定列匹配读取

    让我们来个更难一点的,还是读取 某招聘网站数据.csv 文件,但现在有一个 list 中包含多个字段👇
    usecols = [‘positionId’,’test’,’positionName’, ‘test1’,’salary’]
    如果 usecols 中的列名存在于 某招聘网站数据.csv 中,则读取。

    1. usecols = ['positionId', 'test', 'positionName', 'test1', 'salary']
    2. data = pd.read_csv('某招聘网站数据.csv', usecols=lambda c: c in set(usecols))

    读取时设置索引

    读取当前目录下 某招聘网站数据.csv 文件,并在读取时将 第一列 设置为索引列

    1. data = pd.read_csv('某招聘网站数据.csv',index_col=0)

    读取时设置标题

    读取当前目录下 某招聘网站数据.csv 文件的 positionId、positionName、salary 列,并将标题设置为 ID、岗位名称、薪资

    1. data = pd.read_csv('某招聘网站数据.csv', usecols=[0,1,17],header = 0,names=['ID','岗位名称','薪资'])

    读取并处理缺失值

    • 读取当前目录下 某招聘网站数据.csv 文件,并不将缺失值标记为 NA
    • 读取当前目录下 某招聘网站数据.csv 文件,并将[]标记为缺失值
    • 读取当前目录下 某招聘网站数据.csv 文件,但不处理缺失值 ```python data = pd.read_csv(‘某招聘网站数据.csv’, keep_default_na=False)

    data = pd.read_csv(‘某招聘网站数据.csv’,na_values=[‘[]’])

    data = pd.read_csv(“某招聘网站数据.csv”,na_filter=False)

    1. <a name="JZcNk"></a>
    2. ## 读取时设置格式[¶](https://pandas.liuzaoqi.com/doc/chapter1/%E8%AF%BB%E5%8F%96Excel%E6%96%87%E4%BB%B6.html#id10)
    3. - 读取当前目录下 某招聘网站数据.csv 文件,并将 positionId,companyId 设置为字符串格式
    4. - 读取当前目录下 某招聘网站数据.csv 文件,并将 createTime 列设置为时间
    5. ```python
    6. #指定字符串格式
    7. data = pd.read_csv("某招聘网站数据.csv", dtype={'positionId': str,'companyId':str})
    8. data = pd.read_csv("某招聘网站数据.csv",parse_dates=['createTime']) #指定时间格式

    分块读取

    csv可以excel不行
    读取当前目录下 某招聘网站数据.csv 文件,要求返回一个可迭代对象,每次读取 10 行

    1. data = pd.read_csv("某招聘网站数据.csv", chunksize= 10)

    循环读取数据

    在 demodata 文件夹下有多个 Excel 文件,要求一次性循环读取全部文件。只有标题一致的时候才可以读出来全部数据

    1. import os
    2. path = 'demodata/'
    3. filesnames = os.listdir(path)
    4. filesnames = [f for f in filesnames if f.lower().endswith(".xlsx")]
    5. df_list = []
    6. for filename in filesnames:
    7. df_list.append(pd.read_excel(path + filename))
    8. df = pd.concat(df_list)