【Python学习笔记】从文件中提取数据

【Python学习笔记】从文件中提取数据_第1张图片
图片源自unsplash
  • 相关库:pandas

一、从xlsx文件中提取数据

  • 相关方法:
pandas.read_excel(
    io, 
    sheet_name=0, 
    header=0, 
    names=None, 
    index_col=None, 
    usecols=None, 
    squeeze=False, 
    dtype=None, 
    ngine=None, 
    converters=None, 
    true_values=None, 
    false_values=None, 
    skiprows=None, 
    nrows=None, 
    na_values=None, 
    keep_default_na=True, 
    verbose=False, 
    parse_dates=False, 
    date_parser=None, 
    thousands=None, 
    comment=None, 
    skip_footer=0, 
    skipfooter=0, 
    convert_float=True, 
    mangle_dupe_cols=True, 
    **kwds)

常用参数:

  • io : 文件路径;
  • sheet_name : 指定sheet;
  • index_col : 指定行索引,用 .xlsx 文件中的第几列作为行索引;
  • header : 指定列索引,默认为0,即用第一行作为列索引;
  • usecols : 指定导入列。

示例代码:

# 提取桌面的tmp.xlsx文件中第2个sheet中的数据,只提取第一列的数据

import pandas as pd
df = pd.read_excel(r"C:\Users\hxy\Desktop\tmp.xlsx",sheet_name=1,usecols=0)

二、从CSV文件中提取数据

  • 相关方法:
pd.read_csv(
    filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], 
    sep=',', 
    delimiter=None, 
    header='infer', 
    names=None, 
    index_col=None, 
    usecols=None, 
    squeeze=False, 
    prefix=None, 
    mangle_dupe_cols=True, 
    dtype=None, 
    engine=None, 
    converters=None, 
    true_values=None, 
    false_values=None, 
    skipinitialspace=False, 
    skiprows=None, 
    skipfooter=0, 
    nrows=None, 
    na_values=None, 
    keep_default_na=True, 
    na_filter=True, 
    verbose=False, 
    skip_blank_lines=True, 
    parse_dates=False, 
    infer_datetime_format=False, 
    keep_date_col=False, 
    date_parser=None, 
    dayfirst=False, 
    cache_dates=True, 
    iterator=False, 
    chunksize=None, 
    compression='infer', 
    thousands=None, 
    decimal=b'.', 
    lineterminator=None, 
    quotechar='"', 
    quoting=0, 
    doublequote=True, 
    escapechar=None, 
    comment=None, 
    encoding=None, 
    dialect=None, 
    error_bad_lines=True, 
    warn_bad_lines=True, 
    delim_whitespace=False, 
    low_memory=True, 
    memory_map=False, 
    float_precision=None)

常用参数:

  • filepath : 文件路径;
  • sep : 指定分隔符,默认为逗号;
  • nrows : 指定读取行数;
  • encoding : 指定编码格式,常用为 utf-8 和 gbk ;
  • engine : {‘c’, ‘python’}, 可选。当文件路径或文件名中包含中文时可能报错,这时需要指定 engine = "python",并指定编码为 utf-8-sig 或 gbk 。

示例代码:

# 提取桌面的"临时.csv"文件,分隔符为空格
import pandas as pd
df = pd.read_csv(
    r"C:\Users\hxy\Desktop\临时.csv", 
    sep=" ", 
    engine="python",
    encoding="utf-8-sig")

三、从txt文件中提取数据

  • 相关方法:
pd.read_table(
    filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], 
    sep='t', 
    delimiter=None, 
    header='infer', 
    names=None, 
    index_col=None, 
    usecols=None, 
    squeeze=False, 
    prefix=None, 
    mangle_dupe_cols=True, 
    dtype=None, 
    engine=None, 
    converters=None, 
    true_values=None, 
    false_values=None, 
    skipinitialspace=False, 
    skiprows=None, 
    skipfooter=0, 
    nrows=None, 
    na_values=None, 
    keep_default_na=True, 
    na_filter=True, 
    verbose=False, 
    skip_blank_lines=True, 
    parse_dates=False, 
    infer_datetime_format=False, 
    keep_date_col=False, 
    date_parser=None, 
    dayfirst=False, 
    cache_dates=True, 
    iterator=False, 
    chunksize=None, 
    compression='infer', 
    thousands=None, 
    decimal=b'.', 
    lineterminator=None, 
    quotechar='"', 
    quoting=0, 
    doublequote=True, 
    escapechar=None, 
    comment=None, 
    encoding=None, 
    dialect=None, 
    error_bad_lines=True, 
    warn_bad_lines=True, 
    delim_whitespace=False, 
    low_memory=True, 
    memory_map=False, 
    float_precision=None)

常用参数:

  • filename : 文件路径
  • sep : 指定分隔符

示例代码:

# 从桌面的 tmp.txt 文件中提取数据,分隔符为逗号
import pandas as pd
df = pd.read_table(r"C:\Users\hxy\Desktop\tmp.txt",sep=",")

四、从sql中提取数据

  • 相关模块:pymysql
  • 相关方法:pymysql.connect()

常用参数:

  • host : 主机名或地址
  • user : 用户名
  • password : 密码
  • db : 数据库名
  • charset : 数据库编码,一般为 utf8
pd.read_sql(
    sql, 
    con, 
    index_col=None, 
    coerce_float=True, 
    params=None, 
    parse_dates=None, 
    columns=None, 
    chunksize=None)

常用参数:

  • sql : sql语句
  • con : pymysql.connect()的返回

示例代码:

#读取本地数据库testdb中的表memberinfo,用户名为hxy,密码为passwd
import pandas as pd
import pymysql

sql = "SELECT * FROM memberinfo"
eng = pymysql.connect(
    host='localhost',
    user='hxy',
    password='passwd',
    db='testdb',
    charset='utf8')

df = pd.read_sql(sql,eng)

你可能感兴趣的:(【Python学习笔记】从文件中提取数据)