默认读取¶
默认读取是最简单的方式,使用 pd.read_csv(‘xxxx.csv’) 即可读取对应文件
现在尝试使用 pandas 读取当前目录下 r”C:\Users\25569\Desktop\111.xlsx”
import pandas as pddata = pd.read_csv(r"C:\Users\25569\Desktop\111.xlsx")
注意
使用 pandas 读取 CSV 与读取 xlsx 格式的 Excel 文件方法大致相同
因此下面与 Excel 相关的读取操作均以 xlsx 格式进行介绍
读取前 n 行¶
读取当前目录下 某招聘网站数据.csv 文件的 前20行
data = pd.read_csv("某招聘网站数据.csv",nrows = 20)print(data)
跳过前 n 行¶
读取当前目录下 某招聘网站数据.csv 文件并 跳过前20行
data = pd.read_csv("某招聘网站数据.csv",skiprows = [i for i in range(1,20)])
指定行读取¶
读取当前目录下 某招聘网站数据.csv 文件中全部偶数行
# 奇数行data = pd.read_csv('某招聘网站数据.csv', skiprows=lambda x: (x != 0) and not x % 2)# 偶数行data = pd.read_excel(r"C:\Users\25569\Desktop\111.xlsx", skiprows=lambda x: (x != 0) and x % 2)
指定列号读取¶
读取当前目录下 某招聘网站数据.csv 文件的第 1、3、5 列
data = pd.read_csv("某招聘网站数据.csv",usecols = [0,2,4])
指定列名读取¶
读取当前目录下 某招聘网站数据.csv 文件的 名称 列
data = pd.read_csv("某招聘网站数据.csv",usecols = ['positionId','positionName','salary'])
指定列匹配读取¶
让我们来个更难一点的,还是读取 某招聘网站数据.csv 文件,但现在有一个 list 中包含多个字段👇
usecols = [‘positionId’,’test’,’positionName’, ‘test1’,’salary’]
如果 usecols 中的列名存在于 某招聘网站数据.csv 中,则读取。
usecols = ['positionId', 'test', 'positionName', 'test1', 'salary']data = pd.read_csv('某招聘网站数据.csv', usecols=lambda c: c in set(usecols))
读取时设置索引¶
读取当前目录下 某招聘网站数据.csv 文件,并在读取时将 第一列 设置为索引列
data = pd.read_csv('某招聘网站数据.csv',index_col=0)
读取时设置标题¶
读取当前目录下 某招聘网站数据.csv 文件的 positionId、positionName、salary 列,并将标题设置为 ID、岗位名称、薪资
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)
<a name="JZcNk"></a>## 读取时设置格式[¶](https://pandas.liuzaoqi.com/doc/chapter1/%E8%AF%BB%E5%8F%96Excel%E6%96%87%E4%BB%B6.html#id10)- 读取当前目录下 某招聘网站数据.csv 文件,并将 positionId,companyId 设置为字符串格式- 读取当前目录下 某招聘网站数据.csv 文件,并将 createTime 列设置为时间```python#指定字符串格式data = pd.read_csv("某招聘网站数据.csv", dtype={'positionId': str,'companyId':str})data = pd.read_csv("某招聘网站数据.csv",parse_dates=['createTime']) #指定时间格式
分块读取¶
csv可以excel不行
读取当前目录下 某招聘网站数据.csv 文件,要求返回一个可迭代对象,每次读取 10 行
data = pd.read_csv("某招聘网站数据.csv", chunksize= 10)
循环读取数据¶
在 demodata 文件夹下有多个 Excel 文件,要求一次性循环读取全部文件。只有标题一致的时候才可以读出来全部数据
import ospath = 'demodata/'filesnames = os.listdir(path)filesnames = [f for f in filesnames if f.lower().endswith(".xlsx")]df_list = []for filename in filesnames:df_list.append(pd.read_excel(path + filename))df = pd.concat(df_list)
