新知识
- pd.readcsv函数
- 读取文件前20行的代码,需要将参数nrows设置为20或者21
- 20将文件标题内容算作一行,21则相反
- 跳过文件前20行,则需要将skiprows设置为(1,21)。
- 不从0开始是为了保留文件的标题内容
- skiprows处理的是行索引,从0开始。可以接受一个对行索引进行处理返回指定行索引的函数。
- 因此,可以使用
skiprows = lambda x:x > 0 and x % 2 == 0
筛选出文件的偶数行(标题算第一行)
- 筛选指定列,使用usecols参数
- 该参数可以接收索引列表,列名称列表,对列索引进行处理的函数
- 例如,
usecols = lambda x:x in set('A')
,筛查出指定列A - 如果列A不存在,上述代码不会报错。而
df['A']
会报错
- 指定哪一行作为列名,使用header
- header=0(默认):用第一行作为列名。
- header=None:无列名,Pandas自动生成数字索引(0, 1, 2…)。
- header=2:用第三行作为列名(跳过前两行数据)。
- 覆盖列名或重命名列名使用names
- 当header=None时,必须用names指定列名。
- 当header指定了某一行,但需重命名列时,names会覆盖原始列名。
- names的长度需与列数一致。
- 结合usecols,names和header,可以读取指定列并重命名
data = pd.read_csv('某招聘网站数据.csv', usecols=[0, 1, 17], header=0, names=['ID', '岗位名称', '薪资'])
- 将第一行作为列名
- 选择列的1,2,18列
- 重命名为’ID’, ‘岗位名称’, ‘薪资’
- 但是usecols这里只能用索引,用列名会报错
- 缺失值处理
- 不用NA代替缺失值,
keep_default_na=False
- 自定义缺失值,
na_value=['']
- 自己选择什么值是缺失值
- 忽略缺失值,
na_filter=False
- 不用NA代替缺失值,
- 改变列的数据格式,
dtype={列名:数据格式,...}
- 分块读取,
chunksize=10
- 返回可迭代对象,每次读取10行,避免一次性读取的数据过大
- 读取文件前20行的代码,需要将参数nrows设置为20或者21
- SQLite 是一种轻量级的数据库,它是一个嵌入式的关系型数据库管理系统。SQLite 的数据库以文件的形式存储,这意味着你不需要单独的服务器进程或系统配置来使用它。它非常适合用于小型应用、测试或需要在单个文件中存储数据的场景。
from sqlite3 import connect conn = connect(':memory:') df = pd.DataFrame(data=[[0, '10/11/12'], [1, '12/11/10']], columns=['int_column', 'date_column']) df.to_sql('test_data', conn)
- sqlite3.connect(‘:memory:’) 创建了一个存储在内存中的 SQLite 数据库,而不是存储在磁盘上的文件。这意味着这个数据库在程序运行过程中存在,一旦程序结束,数据库中的数据也会被清除,不会持久化到硬盘上。
- 获取当前目录下的指定文件与文件夹列表
os.listdir(path)