Python之Pandas
1. 核心数据结构参数
DataFrame 参数
pd.DataFrame(
data=None, # 输入数据:可以是ndarray(二维数组,按列输入)、字典(键作为列名,值作为列数据)、列表、Series或另一个DataFrame
index=None, # 行索引标签,如果不指定则自动生成RangeIndex
columns=None, # 列索引标签,如果不指定则自动生成RangeIndex
dtype=None, # 强制使用指定的数据类型,【dtype='float32'强制所有列为float32】,【也可用字典指定各列类型:dtype={'col1':'int', 'col2':'float'}】
copy=False # 是否复制输入数据,默认False:尽可能使用视图(view)节省内存,True:创建数据的独立副本
)
Series 参数
pd.Series(
data=None, # 输入数据:数组、字典或标量值
index=None, # 索引标签
dtype=None, # 数据类型
name=None, # Series的名称,会显示在输出中
copy=False # 是否复制输入数据
)
2. 数据读取/写入参数
read_csv 参数详解
pd.read_csv(
filepath_or_buffer, # 文件路径或文件对象
sep=',', # 分隔符,默认为逗号
delimiter=None, # 同sep,分隔符的别名
header='infer', # 指定行号作为列名(默认0),None表示没有列名
names=None, # 自定义列名列表
index_col=None, # 用作行索引的列号或列名
usecols=None, # 只读取指定列(列名列表或列索引列表)
dtype=None, # 指定列的数据类型{列名: 类型}字典
na_values=None, # 识别为NA/NaN的值列表
skiprows=None, # 要跳过的行号(从0开始)或行数
nrows=None, # 要读取的行数(用于测试大文件)
encoding=None, # 文件编码(如'utf-8')
parse_dates=False, # 尝试解析日期(列名列表或True)
thousands=None, # 千分位分隔符(如',')
decimal='.', # 小数点字符
comment=None, # 注释标识符(如'#'表示跳过#开头的行)
skip_blank_lines=True, # 是否跳过空行
# ... 更多参数
)
to_csv 参数详解
df.to_csv(
path_or_buf=None, # 文件路径或文件对象,None则返回字符串
sep=',', # 分隔符
na_rep='', # 缺失值表示字符串
float_format=None, # 浮点数格式字符串(如'%.2f')
columns=None, # 要写入的列列表
header=True, # 是否写入列名
index=True, # 是否写入行索引
encoding=None, # 编码格式
mode='w', # 写入模式('w'写/'a'追加)
compression='infer', # 压缩方式('gzip', 'bz2', 'zip', 'xz')
quoting=None, # 引用规则(0-最小引用,1-全部引用等)
quotechar='"', # 引用字符
line_terminator='\n', # 行结束符
chunksize=None, # 分块写入的行数
date_format=None, # 日期格式字符串
# ... 更多参数
)
3. 数据查看方法参数
describe 参数详解
df.describe(
percentiles=None, # 要包含的百分位数(如[.25, .5, .75])
include=None, # 包含的数据类型(如'all', 'number', 'object')
exclude=None, # 排除的数据类型
datetime_is_numeric=False # 是否将datetime视为数值
)
info 参数详解
df.info(
verbose=None, # 是否显示完整信息(True/False)
memory_usage=None, # 是否显示内存使用情况
show_counts=None, # 是否显示非空值计数
null_counts=None # 已弃用,用show_counts代替
)
4. 数据选择方法参数
loc/iloc 参数详解
df.loc[ # 基于标签的选择
row_selection, # 行选择(单个标签、列表、切片或布尔数组)
column_selection # 列选择(同上)
]
df.iloc[ # 基于整数位置的选择
row_index, # 行索引(整数、列表、切片或布尔数组)
column_index # 列索引(同上)
]
at/iat 参数详解
df.at[row_label, column_label] # 快速访问单个值(标签)
df.iat[row_index, column_index] # 快速访问单个值(位置)
5. 数据处理方法参数
drop 参数详解
df.drop(
labels=None, # 要删除的标签或标签列表
axis=0, # 0/'index'删除行,1/'columns'删除列
index=None, # 要删除的行标签(替代labels+axis=0)
columns=None, # 要删除的列标签(替代labels+axis=1)
level=None, # 多级索引的级别
inplace=False, # 是否原地修改(True直接修改df)
errors='raise' # 'ignore'忽略不存在的标签
)
fillna 参数详解
df.fillna(
value=None, # 填充值(标量、字典、Series或DataFrame)
method=None, # 填充方法('backfill', 'bfill', 'pad', 'ffill')
axis=None, # 填充方向(0/'index', 1/'columns')
inplace=False, # 是否原地修改
limit=None, # 最大填充连续NaN数量
downcast=None # 向下转换数据类型
)
6. 合并与连接参数
merge 参数详解
pd.merge(
left, # 左侧DataFrame
right, # 右侧DataFrame
how='inner', # 连接方式('inner', 'outer', 'left', 'right')
on=None, # 连接的列名(两表共有)
left_on=None, # 左侧连接键
right_on=None, # 右侧连接键
left_index=False, # 使用左侧索引作为连接键
right_index=False, # 使用右侧索引作为连接键
sort=False, # 按连接键排序结果
suffixes=('_x', '_y'), # 重复列后缀
copy=True, # 是否复制数据
indicator=False, # 添加合并来源列
validate=None # 验证连接类型('one_to_one', 'one_to_many'等)
)
concat 参数详解
pd.concat(
objs, # 要连接的DataFrame或Series序列
axis=0, # 连接方向(0/'index'纵向,1/'columns'横向)
join='outer', # 连接方式('inner'/'outer')
ignore_index=False, # 是否忽略原索引
keys=None, # 创建多级索引的键
levels=None, # 多级索引的级别
names=None, # 多级索引的名称
verify_integrity=False, # 检查索引是否重复
sort=False, # 排序非连接轴
copy=True # 是否复制数据
)
7. 分组聚合参数
groupby 参数详解
df.groupby(
by=None, # 分组依据(列名、列表、字典、Series或函数)
axis=0, # 分组方向(0/'index',1/'columns')
level=None, # 多级索引的级别
as_index=True, # 分组键是否作为索引
sort=True, # 是否排序分组键
group_keys=True, # 调用apply时是否添加分组键
observed=False, # 只显示观察到的分类值
dropna=True # 是否删除NA分组
)
agg 参数详解
df.agg(
func=None, # 聚合函数(字符串、函数、列表或字典)
axis=0, # 应用方向(0/'index',1/'columns')
*args, # 传递给函数的参数
**kwargs # 传递给函数的关键字参数
)
8. 时间序列处理参数
to_datetime 参数详解
pd.to_datetime(
arg, # 要转换的数据(标量、数组、Series或DataFrame)
errors='raise', # 错误处理('raise', 'coerce', 'ignore')
dayfirst=False, # 是否优先解析日为第一个数字
yearfirst=False, # 是否优先解析年为第一个数字
utc=None, # 是否转换为UTC
format=None, # 格式字符串(如'%Y-%m-%d')
exact=True, # 是否要求格式完全匹配
unit=None, # 时间单位(如's'秒,'ms'毫秒)
infer_datetime_format=False, # 是否推断格式
origin='unix', # 定义参考日期
cache=True # 是否缓存转换结果
)
date_range 参数详解
pd.date_range(
start=None, # 开始日期(字符串或datetime-like)
end=None, # 结束日期
periods=None, # 要生成的周期数
freq=None, # 频率字符串(如'D'天,'H'小时)
tz=None, # 时区字符串或tzinfo对象
normalize=False, # 是否将时间标准化到午夜
name=None, # 结果索引的名称
closed=None, # 区间闭合方式('left', 'right')
**kwargs # 其他频率参数
)