pd.readcsv函数参数解析

新知识

  • 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
    • 改变列的数据格式,dtype={列名:数据格式,...}
    • 分块读取,chunksize=10
      • 返回可迭代对象,每次读取10行,避免一次性读取的数据过大
  • 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)
`pd.read_csv()` 是 Pandas 库中的一个函数,用于从 CSV 文件中读取数据并创建 DataFrame(表格)。这个函数有许多参数可以自定义读取过程,以下是其中一些关键参数及其用途: 1. **filepath_or_buffer**: 必需参数,指明CSV文件的路径(str)或打开的文件对象(file-like object),或者是包含数据的数据字典(dict)或其他序列。 ```python df = pd.read_csv('data.csv') # 读取本地文件 df = pd.read_csv(io.StringIO(your_data)) # 读取内存中的字符串内容 ``` 2. **delimiter**: 字符,默认是逗号 `,`。如果数据中使用非逗号分隔,可以设置此参数。 ```python df = pd.read_csv('data.tsv', delimiter='\t') # 使用制表符分隔 ``` 3. **header**: 定义行标签的位置,默认是第一行。可以选择 `None` 表示无标签,`0` 表示第一行作为标签,或者整数或多行范围。 ```python df = pd.read_csv('data.csv', header=None) # 无标签 ``` 4. **names**: 提供列名列表,用于设置DataFrame的列名。 ```python names = ['Column1', 'Column2'] df = pd.read_csv('data.csv', names=names) ``` 5. **usecols**: 可选,指定要读取的列名,可以是单列名、一列范围或整数索引。 ```python df = pd.read_csv('data.csv', usecols=['Column1', 'Column3']) ``` 6. **index_col**: 指定哪一列作为索引列。 ```python df = pd.read_csv('data.csv', index_col='ID') ``` 还有很多其他参数,如 `dtype`, `parse_dates`, `encoding` 等,可以控制数据类型解析、日期格式化和编码等。完整的文档可以在Pandas官方文档中找到: https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值