python-pandas速查文档(2)博客主页:源码速查本文档共 4 部分,当前为第 2 部分文章目录python-pandas速查文档(2)六、公开方法速查(按功能分类)searchsorted():查找插入位置set_axis():重设轴标签set_categories():重新设定分类值set_closed():设置闭合方式set_codes():设置编码值set_eng_float_format():设置工程浮点格式set_index():设置行索引列set_levels():设置层级标签值set_names():设置索引名称set_option():全局配置项set_ordered():设置有序标记shift():数据位移sort():排序sort_index():按索引排序sort_values():按值排序sortlevel():多级索引层级排序stack():列转行堆叠strftime():日期格式化输出swaplevel():交换索引层级symmetric_difference():对称差集transform():分组内逐行计算tz_convert():时区转换tz_localize():标记时区unstack():行索引转列update():原地更新数据update_dtype():更新类型计算聚合agg():聚合计算aggregate():聚合计算(同义)argmax():最大值位置argmin():最小值位置autocorr():自相关系数corr():相关系数矩阵corrwith():按轴计算相关系数count():非空值计数cov():协方差矩阵cummax():累计最大值cummin():累计最小值cumprod():累计乘积cumsum():累计求和describe():统计描述describe_option():查看配置项说明groupby():分组操作groups():HDF5分组列表idxmax():最大值索引标签idxmin():最小值索引标签max():最大值mean():平均值median():中位数min():最小值prod():乘积quantile():分位数std():标准差sum():求和value_counts():频数统计八、快速索引方法快速索引九、参考资料【pandas 公开成员统计】:共 41 个公开类,628 个公开方法,239 个公开属性六、公开方法速查(按功能分类)本部分继续列出公开方法详细条目。searchsorted():查找插入位置Series.searchsorted(self, value: 'NumpyValueArrayLike | ExtensionArray', side: "Literal['left', 'right']" = 'left', sorter: 'NumpySorter | None' = None) - 'npt.NDArray[np.intp] | np.intp'归属:pandas.Series说明:在已排序的 Series 中二分查找指定值的插入位置,保持有序。importpandasaspd s=pd.Series([80,100,120,150],index=[1990,1991,1992,1993],name="价格指数")print("100 应插入位置:",s.searchsorted(100))# 输出: 1print("115 应插入位置:",s.searchsorted(115))# 输出: 2set_axis():重设轴标签DataFrame.set_axis(self, labels, *, axis: 'Axis' = 0, copy: 'bool | None' = None) - 'DataFrame'归属:pandas.DataFrame说明:替换行索引或列名称,适合整理来自英文或数据库默认字段名的表格。importpandasaspd 销售底表=pd.DataFrame({"city":["北京","上海"],"amount":[120,150],"channel":["线上","门店"]})改名表=销售底表.set_axis(["城市","销售额","渠道"],axis=1)print(改名表.columns.tolist())# 输出: ['城市', '销售额', '渠道']归属:pandas.Series说明:替换 Series 的行索引标签。importpandasaspd s=pd.Series([120,80,150],index=["北京","上海","广州"],name="销售额")s2=s.set_axis(["B京","S海","G州"])print(s2)# 输出:# B京 120# S海 80# G州 150set_categories():重新设定分类值Categorical.set_categories(self, new_categories, ordered=None, rename: 'bool' = False)归属:pandas.Categorical说明:修改分类的合法类别集合,可添加新类别或移除旧类别。importpandasaspd 等级=pd.Categorical(["初级","中级","初级"],categories=["初级","中级"],ordered=True)新等级=等级.set_categories(["初级","中级","高级"],ordered=True)print(新等级.categories.tolist())# 输出: ['初级', '中级', '高级']归属:pandas.CategoricalIndex说明:修改分类索引的合法类别集合。importpandasaspd idx=pd.CategoricalIndex(["低","中","高"],categories=["低","中","高"],ordered=True)新索引=idx.set_categories(["低","中","高","特高"],ordered=True)print(新索引.categories.tolist())# 输出: ['低', '中', '高', '特高']set_closed():设置闭合方式IntervalIndex.set_closed(self, *args, **kwargs)归属:pandas.IntervalIndex说明:修改区间索引的端点闭合方式(left/right/both/neither)。importpandasaspd 区间=pd.IntervalIndex.from_breaks([0,10,20])# 默认右侧闭合print("修改前闭合:",区间.closed)# 输出: rightprint("修改后闭合:",区间.set_closed("left").closed)# 输出: leftset_codes():设置编码值MultiIndex.set_codes(self, codes, *, level=None, verify_integrity: 'bool' = True) - 'MultiIndex'归属:pandas.MultiIndex说明:修改指定层级的编码值,直接控制该层级指向 levels 中哪个标签。importpandasaspd 多级=pd.MultiIndex.from_tuples([("手机","北京"),("平板","上海")],names=["产品","城市"])新编码=多级.set_codes([[0],[1]],level=0)# 仅保留第0层第一组print(新编码)set_eng_float_format():设置工程浮点格式pd.set_eng_float_format(accuracy: 'int' = 3, use_eng_prefix: 'bool' = False) - 'None'归属:pandas说明:设置 DataFrame 中浮点数的工程计数法显示格式。importpandasaspd pd.set_eng_float_format(accuracy=2,use_eng_prefix=True)df=pd.DataFrame({"电阻":[1000,2200000,0.0047]})print(df)# 输出: 电阻# 0 1.00k# 1 2.20M# 2 4.70mpd.reset_option("display.eng_float_format")set_index():设置行索引列DataFrame.set_index(self, keys, *, drop: 'bool' = True, append: 'bool' = False, inplace: 'bool' = False, verify_integrity: 'bool' = False) - 'DataFrame | None'归属:pandas.DataFrame说明:将指定列提升为行索引,默认从 DataFrame 中删除该列。importpandasaspd 员工表=pd.DataFrame({"工号":["E001","E002"],"姓名":["张三","李四"],"部门":["技术部","市场部"]})设置后=员工表.set_index("工号")print(设置后)# 输出:# 姓名 部门# 工号# E001 张三 技术部# E002 李四 市场部set_levels():设置层级标签值MultiIndex.set_levels(self, levels, *, level=None, verify_integrity: 'bool' = True) - 'MultiIndex'归属:pandas.MultiIndex说明:替换指定层级的去重标签列表。importpandasaspd 多级=pd.MultiIndex.from_tuples([("手机","北京"),("手机","上海")],names=["产品","城市"])新层级=多级.set_levels(["上海","广州"],level=1)print(新层级.levels[1].tolist())# 输出: ['上海', '广州']set_names():设置索引名称Index.set_names(self, names, *, level=None, inplace: 'bool' = False) - 'Self | None'归属:pandas.Index说明:设置单层或多层索引的名称。importpandasaspd 城市索引=pd.Index(["北京","上海","广州"])有名称=城市索引.set_names("城市名")print(有名称.name)# 输出: 城市名set_option():全局配置项pd.set_option(*args, **kwds) - 'T'归属:pandas说明:设置 pandas 全局显示或行为选项,如最大行数、最大列宽、浮点精度。importpandasaspd pd.set_option("display.max_rows",20)pd.set_option("display.max_columns",10)pd.set_option("display.float_format",lambdax:f"{x:.2f}")df=pd.DataFrame({"A":[1.23456,2.34567]})print(df)# 输出: A# 0 1.23# 1 2.35set_ordered():设置有序标记Categorical.set_ordered(self, value: 'bool') - 'Self'归属:pandas.Categorical说明:修改分类数据是否有序,影响后续的大小比较和排序行为。importpandasaspd 等级=pd.Categorical(["初级","高级","中级"],categories=["初级","中级","高级"])等级.set_ordered(True,inplace=True)print(等级.ordered,"初级 高级:",等级[0]等级[1])# 输出: True 初级 高级: Trueshift():数据位移DataFrame.shift(self, periods: 'int | Sequence[int]' = 1, freq: 'Frequency | None' = None, axis: 'Axis' = 0, fill_value: 'Hashable' = no_default, suffix: 'str | None' = None) - 'DataFrame'归属:pandas.DataFrame说明:将数据沿轴方向移动指定步数,空出的位置填 NaN,常用于构造滞后特征。importpandasaspd 股票数据=pd.DataFrame({"日期":pd.date_range("2026-05-20",periods=4,freq="D"),"收盘价":[100,102,105,103]})股票数据["昨收"]=股票数据["收盘价"].shift(1)股票数据["涨跌"]=股票数据["收盘价"]-股票数据["昨收"]print(股票数据[["日期","收盘价","昨收","涨跌"]])# 输出:# 日期 收盘价 昨收 涨跌# 0 2026-05-20 100 NaN NaN# 1 2026-05-21 102 100.0 2.0# 2 2026-05-22 105 102.0 3.0# 3 2026-05-23 103 105.0 -2.0sort():排序Index.sort(self, *args, **kwargs)归属:pandas.Index说明:对 Index 按值进行排序(已废弃,推荐使用 sort_values)。importpandasaspd idx=pd.Index(["广州","北京","上海"],name="城市")print(idx.sort_values().tolist())# 输出: ['上海', '北京', '广州'](按拼音排序)sort_index():按索引排序DataFrame.sort_index(self, *, axis: 'Axis' = 0, level: 'IndexLabel | None' = None, ascending: 'bool | Sequence[bool]' = True, inplace: 'bool' = False, kind: 'SortKind' = 'quicksort', na_position: 'NaP...归属:pandas.DataFrame说明:按行索引(或列索引)的值对 DataFrame 排序。importpandasaspd 销售表=pd.DataFrame({"产品":["手机","平板"],"销量":[300,120]},index=["2026-05","2026-04"])排序后=销售表.sort_index()print(排序后)# 输出:# 产品 销量# 2026-04 平板 120# 2026-05 手机 300归属:pandas.Series说明:按 Series 的索引排序。
【数据分析】python-pandas速查文档(2)
python-pandas速查文档(2)博客主页:源码速查本文档共 4 部分,当前为第 2 部分文章目录python-pandas速查文档(2)六、公开方法速查(按功能分类)searchsorted():查找插入位置set_axis():重设轴标签set_categories():重新设定分类值set_closed():设置闭合方式set_codes():设置编码值set_eng_float_format():设置工程浮点格式set_index():设置行索引列set_levels():设置层级标签值set_names():设置索引名称set_option():全局配置项set_ordered():设置有序标记shift():数据位移sort():排序sort_index():按索引排序sort_values():按值排序sortlevel():多级索引层级排序stack():列转行堆叠strftime():日期格式化输出swaplevel():交换索引层级symmetric_difference():对称差集transform():分组内逐行计算tz_convert():时区转换tz_localize():标记时区unstack():行索引转列update():原地更新数据update_dtype():更新类型计算聚合agg():聚合计算aggregate():聚合计算(同义)argmax():最大值位置argmin():最小值位置autocorr():自相关系数corr():相关系数矩阵corrwith():按轴计算相关系数count():非空值计数cov():协方差矩阵cummax():累计最大值cummin():累计最小值cumprod():累计乘积cumsum():累计求和describe():统计描述describe_option():查看配置项说明groupby():分组操作groups():HDF5分组列表idxmax():最大值索引标签idxmin():最小值索引标签max():最大值mean():平均值median():中位数min():最小值prod():乘积quantile():分位数std():标准差sum():求和value_counts():频数统计八、快速索引方法快速索引九、参考资料【pandas 公开成员统计】:共 41 个公开类,628 个公开方法,239 个公开属性六、公开方法速查(按功能分类)本部分继续列出公开方法详细条目。searchsorted():查找插入位置Series.searchsorted(self, value: 'NumpyValueArrayLike | ExtensionArray', side: "Literal['left', 'right']" = 'left', sorter: 'NumpySorter | None' = None) - 'npt.NDArray[np.intp] | np.intp'归属:pandas.Series说明:在已排序的 Series 中二分查找指定值的插入位置,保持有序。importpandasaspd s=pd.Series([80,100,120,150],index=[1990,1991,1992,1993],name="价格指数")print("100 应插入位置:",s.searchsorted(100))# 输出: 1print("115 应插入位置:",s.searchsorted(115))# 输出: 2set_axis():重设轴标签DataFrame.set_axis(self, labels, *, axis: 'Axis' = 0, copy: 'bool | None' = None) - 'DataFrame'归属:pandas.DataFrame说明:替换行索引或列名称,适合整理来自英文或数据库默认字段名的表格。importpandasaspd 销售底表=pd.DataFrame({"city":["北京","上海"],"amount":[120,150],"channel":["线上","门店"]})改名表=销售底表.set_axis(["城市","销售额","渠道"],axis=1)print(改名表.columns.tolist())# 输出: ['城市', '销售额', '渠道']归属:pandas.Series说明:替换 Series 的行索引标签。importpandasaspd s=pd.Series([120,80,150],index=["北京","上海","广州"],name="销售额")s2=s.set_axis(["B京","S海","G州"])print(s2)# 输出:# B京 120# S海 80# G州 150set_categories():重新设定分类值Categorical.set_categories(self, new_categories, ordered=None, rename: 'bool' = False)归属:pandas.Categorical说明:修改分类的合法类别集合,可添加新类别或移除旧类别。importpandasaspd 等级=pd.Categorical(["初级","中级","初级"],categories=["初级","中级"],ordered=True)新等级=等级.set_categories(["初级","中级","高级"],ordered=True)print(新等级.categories.tolist())# 输出: ['初级', '中级', '高级']归属:pandas.CategoricalIndex说明:修改分类索引的合法类别集合。importpandasaspd idx=pd.CategoricalIndex(["低","中","高"],categories=["低","中","高"],ordered=True)新索引=idx.set_categories(["低","中","高","特高"],ordered=True)print(新索引.categories.tolist())# 输出: ['低', '中', '高', '特高']set_closed():设置闭合方式IntervalIndex.set_closed(self, *args, **kwargs)归属:pandas.IntervalIndex说明:修改区间索引的端点闭合方式(left/right/both/neither)。importpandasaspd 区间=pd.IntervalIndex.from_breaks([0,10,20])# 默认右侧闭合print("修改前闭合:",区间.closed)# 输出: rightprint("修改后闭合:",区间.set_closed("left").closed)# 输出: leftset_codes():设置编码值MultiIndex.set_codes(self, codes, *, level=None, verify_integrity: 'bool' = True) - 'MultiIndex'归属:pandas.MultiIndex说明:修改指定层级的编码值,直接控制该层级指向 levels 中哪个标签。importpandasaspd 多级=pd.MultiIndex.from_tuples([("手机","北京"),("平板","上海")],names=["产品","城市"])新编码=多级.set_codes([[0],[1]],level=0)# 仅保留第0层第一组print(新编码)set_eng_float_format():设置工程浮点格式pd.set_eng_float_format(accuracy: 'int' = 3, use_eng_prefix: 'bool' = False) - 'None'归属:pandas说明:设置 DataFrame 中浮点数的工程计数法显示格式。importpandasaspd pd.set_eng_float_format(accuracy=2,use_eng_prefix=True)df=pd.DataFrame({"电阻":[1000,2200000,0.0047]})print(df)# 输出: 电阻# 0 1.00k# 1 2.20M# 2 4.70mpd.reset_option("display.eng_float_format")set_index():设置行索引列DataFrame.set_index(self, keys, *, drop: 'bool' = True, append: 'bool' = False, inplace: 'bool' = False, verify_integrity: 'bool' = False) - 'DataFrame | None'归属:pandas.DataFrame说明:将指定列提升为行索引,默认从 DataFrame 中删除该列。importpandasaspd 员工表=pd.DataFrame({"工号":["E001","E002"],"姓名":["张三","李四"],"部门":["技术部","市场部"]})设置后=员工表.set_index("工号")print(设置后)# 输出:# 姓名 部门# 工号# E001 张三 技术部# E002 李四 市场部set_levels():设置层级标签值MultiIndex.set_levels(self, levels, *, level=None, verify_integrity: 'bool' = True) - 'MultiIndex'归属:pandas.MultiIndex说明:替换指定层级的去重标签列表。importpandasaspd 多级=pd.MultiIndex.from_tuples([("手机","北京"),("手机","上海")],names=["产品","城市"])新层级=多级.set_levels(["上海","广州"],level=1)print(新层级.levels[1].tolist())# 输出: ['上海', '广州']set_names():设置索引名称Index.set_names(self, names, *, level=None, inplace: 'bool' = False) - 'Self | None'归属:pandas.Index说明:设置单层或多层索引的名称。importpandasaspd 城市索引=pd.Index(["北京","上海","广州"])有名称=城市索引.set_names("城市名")print(有名称.name)# 输出: 城市名set_option():全局配置项pd.set_option(*args, **kwds) - 'T'归属:pandas说明:设置 pandas 全局显示或行为选项,如最大行数、最大列宽、浮点精度。importpandasaspd pd.set_option("display.max_rows",20)pd.set_option("display.max_columns",10)pd.set_option("display.float_format",lambdax:f"{x:.2f}")df=pd.DataFrame({"A":[1.23456,2.34567]})print(df)# 输出: A# 0 1.23# 1 2.35set_ordered():设置有序标记Categorical.set_ordered(self, value: 'bool') - 'Self'归属:pandas.Categorical说明:修改分类数据是否有序,影响后续的大小比较和排序行为。importpandasaspd 等级=pd.Categorical(["初级","高级","中级"],categories=["初级","中级","高级"])等级.set_ordered(True,inplace=True)print(等级.ordered,"初级 高级:",等级[0]等级[1])# 输出: True 初级 高级: Trueshift():数据位移DataFrame.shift(self, periods: 'int | Sequence[int]' = 1, freq: 'Frequency | None' = None, axis: 'Axis' = 0, fill_value: 'Hashable' = no_default, suffix: 'str | None' = None) - 'DataFrame'归属:pandas.DataFrame说明:将数据沿轴方向移动指定步数,空出的位置填 NaN,常用于构造滞后特征。importpandasaspd 股票数据=pd.DataFrame({"日期":pd.date_range("2026-05-20",periods=4,freq="D"),"收盘价":[100,102,105,103]})股票数据["昨收"]=股票数据["收盘价"].shift(1)股票数据["涨跌"]=股票数据["收盘价"]-股票数据["昨收"]print(股票数据[["日期","收盘价","昨收","涨跌"]])# 输出:# 日期 收盘价 昨收 涨跌# 0 2026-05-20 100 NaN NaN# 1 2026-05-21 102 100.0 2.0# 2 2026-05-22 105 102.0 3.0# 3 2026-05-23 103 105.0 -2.0sort():排序Index.sort(self, *args, **kwargs)归属:pandas.Index说明:对 Index 按值进行排序(已废弃,推荐使用 sort_values)。importpandasaspd idx=pd.Index(["广州","北京","上海"],name="城市")print(idx.sort_values().tolist())# 输出: ['上海', '北京', '广州'](按拼音排序)sort_index():按索引排序DataFrame.sort_index(self, *, axis: 'Axis' = 0, level: 'IndexLabel | None' = None, ascending: 'bool | Sequence[bool]' = True, inplace: 'bool' = False, kind: 'SortKind' = 'quicksort', na_position: 'NaP...归属:pandas.DataFrame说明:按行索引(或列索引)的值对 DataFrame 排序。importpandasaspd 销售表=pd.DataFrame({"产品":["手机","平板"],"销量":[300,120]},index=["2026-05","2026-04"])排序后=销售表.sort_index()print(排序后)# 输出:# 产品 销量# 2026-04 平板 120# 2026-05 手机 300归属:pandas.Series说明:按 Series 的索引排序。