DataFrame#

构造函数#

DataFrame([data, index, columns, dtype, copy])

二维的、大小可变的、可能异构的表格数据。

属性和底层数据#

DataFrame.index

DataFrame 的索引(行标签)。

DataFrame.columns

DataFrame 的列标签。

DataFrame.dtypes

返回 DataFrame 中的数据类型。

DataFrame.info([verbose, buf, max_cols, ...])

打印 DataFrame 的简洁摘要。

DataFrame.select_dtypes([include, exclude])

根据列的数据类型返回 DataFrame 列的子集。

DataFrame.values

返回 DataFrame 的 Numpy 表示。

DataFrame.axes

返回一个表示 DataFrame 轴的列表。

DataFrame.ndim

返回一个表示轴/数组维数的整数。

DataFrame.size

返回一个表示此对象中元素数量的整数。

DataFrame.shape

返回一个表示 DataFrame 维度的元组。

DataFrame.memory_usage([index, deep])

返回每列的内存使用量(以字节为单位)。

DataFrame.empty

指示 Series/DataFrame 是否为空。

DataFrame.set_flags(*[, copy, ...])

返回一个带有更新标志的新对象。

转换#

DataFrame.astype(dtype[, copy, errors])

将 pandas 对象强制转换为指定的数据类型 dtype

DataFrame.convert_dtypes([infer_objects, ...])

将列从 numpy 数据类型转换为支持 pd.NA 的最佳数据类型。

DataFrame.infer_objects([copy])

尝试为 object 列推断更合适的数据类型。

DataFrame.copy([deep])

复制此对象的索引和数据。

DataFrame.to_numpy([dtype, copy, na_value])

将 DataFrame 转换为 NumPy 数组。

索引、迭代#

DataFrame.head([n])

返回前 n 行。

DataFrame.at

通过行/列标签对访问单个值。

DataFrame.iat

通过整数位置通过行/列对访问单个值。

DataFrame.loc

通过标签或布尔数组访问一组行和列。

DataFrame.iloc

纯粹基于整数位置的索引,用于按位置选择。

DataFrame.insert(loc, column, value[, ...])

在指定位置将列插入 DataFrame。

DataFrame.__iter__()

迭代信息轴。

DataFrame.items()

迭代(列名,Series)对。

DataFrame.keys()

获取“信息轴”(更多信息请参阅索引)。

DataFrame.iterrows()

将 DataFrame 行迭代为(索引,Series)对。

DataFrame.itertuples([index, name])

将 DataFrame 行迭代为命名元组。

DataFrame.pop(item)

返回项并将其从 DataFrame 中删除。

DataFrame.tail([n])

返回最后 n 行。

DataFrame.xs(key[, axis, level, drop_level])

从 Series/DataFrame 返回横截面。

DataFrame.get(key[, default])

获取对象中给定键(例如 DataFrame 列)的项。

DataFrame.isin(values)

DataFrame 中的每个元素是否包含在 values 中。

DataFrame.where(cond[, other, inplace, ...])

替换条件为 False 的值。

DataFrame.mask(cond[, other, inplace, axis, ...])

替换条件为 True 的值。

DataFrame.query(expr, *[, parser, engine, ...])

使用布尔表达式查询 DataFrame 的列。

DataFrame.isetitem(loc, value)

在位置 loc 的列中设置给定值。

有关 .at.iat.loc.iloc 的更多信息,请参阅 索引文档

二元运算符函数#

DataFrame.__add__(other)

获取 DataFrame 与其他对象逐列相加。

DataFrame.add(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素相加(二元运算符 add)。

DataFrame.sub(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素相减(二元运算符 sub)。

DataFrame.mul(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素相乘(二元运算符 mul)。

DataFrame.div(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素浮点除法(二元运算符 truediv)。

DataFrame.truediv(other[, axis, level, ...])

获取 DataFrame 与其他对象逐元素浮点除法(二元运算符 truediv)。

DataFrame.floordiv(other[, axis, level, ...])

获取 DataFrame 与其他对象逐元素整数除法(二元运算符 floordiv)。

DataFrame.mod(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素取模(二元运算符 mod)。

DataFrame.pow(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素幂运算(二元运算符 pow)。

DataFrame.dot(other)

计算 DataFrame 和其他对象之间的矩阵乘法。

DataFrame.radd(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素相加(二元运算符 radd)。

DataFrame.rsub(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素相减(二元运算符 rsub)。

DataFrame.rmul(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素相乘(二元运算符 rmul)。

DataFrame.rdiv(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素浮点除法(二元运算符 rtruediv)。

DataFrame.rtruediv(other[, axis, level, ...])

获取 DataFrame 与其他对象逐元素浮点除法(二元运算符 rtruediv)。

DataFrame.rfloordiv(other[, axis, level, ...])

获取 DataFrame 与其他对象逐元素整数除法(二元运算符 rfloordiv)。

DataFrame.rmod(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素取模(二元运算符 rmod)。

DataFrame.rpow(other[, axis, level, fill_value])

获取 DataFrame 与其他对象逐元素幂运算(二元运算符 rpow)。

DataFrame.lt(other[, axis, level])

获取 DataFrame 与其他对象逐元素大于比较(二元运算符 lt)。

DataFrame.gt(other[, axis, level])

获取 DataFrame 与其他对象逐元素大于比较(二元运算符 gt)。

DataFrame.le(other[, axis, level])

获取 DataFrame 与其他对象逐元素大于等于比较(二元运算符 le)。

DataFrame.ge(other[, axis, level])

获取 DataFrame 与其他对象逐元素大于等于比较(二元运算符 ge)。

DataFrame.ne(other[, axis, level])

获取 DataFrame 与其他对象逐元素不等于比较(二元运算符 ne)。

DataFrame.eq(other[, axis, level])

获取 DataFrame 与其他对象逐元素等于比较(二元运算符 eq)。

DataFrame.combine(other, func[, fill_value, ...])

与另一个 DataFrame 进行列组合。

DataFrame.combine_first(other)

other 中相同位置的值更新空值元素。

函数应用、GroupBy 和窗口#

DataFrame.apply(func[, axis, raw, ...])

沿 DataFrame 的轴应用函数。

DataFrame.map(func[, na_action])

逐元素地将函数应用于 DataFrame。

DataFrame.pipe(func, *args, **kwargs)

应用期望 Series 或 DataFrame 的链式函数。

DataFrame.agg([func, axis])

沿指定轴对一个或多个操作进行聚合。

DataFrame.aggregate([func, axis])

沿指定轴对一个或多个操作进行聚合。

DataFrame.transform(func[, axis])

调用 func 在 self 上,生成一个与 self 具有相同轴形状的 DataFrame。

DataFrame.groupby([by, level, as_index, ...])

使用映射器或按列的 Series 对 DataFrame 进行分组。

DataFrame.rolling(window[, min_periods, ...])

提供滚动窗口计算。

DataFrame.expanding([min_periods, method])

提供扩展窗口计算。

DataFrame.ewm([com, span, halflife, alpha, ...])

提供指数加权 (EW) 计算。

计算/描述性统计#

DataFrame.abs()

返回一个 Series/DataFrame,其中包含每个元素的绝对数值。

DataFrame.all(*[, axis, bool_only, skipna])

返回所有元素是否为 True,可能沿轴。

DataFrame.any(*[, axis, bool_only, skipna])

返回任何元素是否为 True,可能沿轴。

DataFrame.clip([lower, upper, axis, inplace])

在输入阈值处修剪值。

DataFrame.corr([method, min_periods, ...])

计算列的成对相关性,排除 NA/null 值。

DataFrame.corrwith(other[, axis, drop, ...])

计算成对相关性。

DataFrame.count([axis, numeric_only])

计算每列或每行的非 NA 单元格数。

DataFrame.cov([min_periods, ddof, numeric_only])

计算列的成对协方差,排除 NA/null 值。

DataFrame.cummax([axis, skipna, numeric_only])

沿 DataFrame 或 Series 轴返回累积最大值。

DataFrame.cummin([axis, skipna, numeric_only])

沿 DataFrame 或 Series 轴返回累积最小值。

DataFrame.cumprod([axis, skipna, numeric_only])

沿 DataFrame 或 Series 轴返回累积乘积。

DataFrame.cumsum([axis, skipna, numeric_only])

沿 DataFrame 或 Series 轴返回累积和。

DataFrame.describe([percentiles, include, ...])

生成描述性统计信息。

DataFrame.diff([periods, axis])

元素的离散差值。

DataFrame.eval(expr, *[, inplace])

计算描述 DataFrame 列操作的字符串。

DataFrame.kurt(*[, axis, skipna, numeric_only])

返回所请求轴上的无偏峰度。

DataFrame.kurtosis(*[, axis, skipna, ...])

返回所请求轴上的无偏峰度。

DataFrame.max(*[, axis, skipna, numeric_only])

返回所请求轴上值的最大值。

DataFrame.mean(*[, axis, skipna, numeric_only])

返回所请求轴上值的平均值。

DataFrame.median(*[, axis, skipna, numeric_only])

返回所请求轴上值的中间值。

DataFrame.min(*[, axis, skipna, numeric_only])

返回所请求轴上值的最小值。

DataFrame.mode([axis, numeric_only, dropna])

获取所选轴上每个元素(或最常见值)。

DataFrame.pct_change([periods, fill_method, ...])

当前元素与先前元素之间的分数变化。

DataFrame.prod(*[, axis, skipna, ...])

返回所请求轴上值的乘积。

DataFrame.product(*[, axis, skipna, ...])

返回所请求轴上值的乘积。

DataFrame.quantile([q, axis, numeric_only, ...])

返回所请求轴上的分位数(百分位数)值。

DataFrame.rank([axis, method, numeric_only, ...])

沿轴计算数值数据排名(1 到 n)。

DataFrame.round([decimals])

将 DataFrame 中的数值列四舍五入到可变的小数位数。

DataFrame.sem(*[, axis, skipna, ddof, ...])

返回请求轴上未偏倚的均值标准误差。

DataFrame.skew(*[, axis, skipna, numeric_only])

返回请求轴上未偏倚的偏度。

DataFrame.sum(*[, axis, skipna, ...])

返回请求轴上的值之和。

DataFrame.std(*[, axis, skipna, ddof, ...])

返回请求轴上的样本标准差。

DataFrame.var(*[, axis, skipna, ddof, ...])

返回请求轴上的未偏倚方差。

DataFrame.nunique([axis, dropna])

计算指定轴上不同元素的数量。

DataFrame.value_counts([subset, normalize, ...])

返回一个 Series,其中包含 DataFrame 中每个不同行的频率。

重索引/选择/标签操作#

DataFrame.add_prefix(prefix[, axis])

为标签添加前缀字符串prefix

DataFrame.add_suffix(suffix[, axis])

为标签添加后缀字符串suffix

DataFrame.align(other[, join, axis, level, ...])

使用指定的连接方法将两个对象按其轴对齐。

DataFrame.at_time(time[, asof, axis])

选择一天中特定时间的值(例如,上午 9:30)。

DataFrame.between_time(start_time, end_time)

选择一天中特定时间段内的值(例如,上午 9:00-9:30)。

DataFrame.drop([labels, axis, index, ...])

从行或列中删除指定的标签。

DataFrame.drop_duplicates([subset, keep, ...])

返回已删除重复行的 DataFrame。

DataFrame.duplicated([subset, keep])

返回表示重复行的布尔 Series。

DataFrame.equals(other)

测试两个对象是否包含相同元素。

DataFrame.filter([items, like, regex, axis])

根据指定的索引标签子集化 DataFrame 或 Series。

DataFrame.idxmax([axis, skipna, numeric_only])

返回请求轴上最大值第一次出现的索引。

DataFrame.idxmin([axis, skipna, numeric_only])

返回请求轴上最小值第一次出现的索引。

DataFrame.reindex([labels, index, columns, ...])

使用可选的填充逻辑将 DataFrame 匹配到新索引。

DataFrame.reindex_like(other[, method, ...])

返回一个具有与另一个对象匹配的索引的对象。

DataFrame.rename([mapper, index, columns, ...])

重命名列或索引标签。

DataFrame.rename_axis([mapper, index, ...])

设置索引或列的轴名称。

DataFrame.reset_index([level, drop, ...])

重置索引或其某个级别。

DataFrame.sample([n, frac, replace, ...])

从对象的轴返回随机样本项。

DataFrame.set_axis(labels, *[, axis, copy])

将所需的索引分配给给定的轴。

DataFrame.set_index(keys, *[, drop, append, ...])

使用现有列设置 DataFrame 索引。

DataFrame.take(indices[, axis])

沿轴返回给定位置索引中的元素。

DataFrame.truncate([before, after, axis, copy])

截断 Series 或 DataFrame 在某个索引值之前和之后的部分。

缺失数据处理#

DataFrame.bfill(*[, axis, inplace, limit, ...])

使用下一个有效观测值填充 NA/NaN 值以填补空白。

DataFrame.dropna(*[, axis, how, thresh, ...])

删除缺失值。

DataFrame.ffill(*[, axis, inplace, limit, ...])

通过传播最后一个有效观测值来填充 NA/NaN 值。

DataFrame.fillna(value, *[, axis, inplace, ...])

value填充 NA/NaN 值。

DataFrame.interpolate([method, axis, limit, ...])

使用插值方法填充 NaN 值。

DataFrame.isna()

检测缺失值。

DataFrame.isnull()

DataFrame.isnull 是 DataFrame.isna 的别名。

DataFrame.notna()

检测存在的(非缺失)值。

DataFrame.notnull()

DataFrame.notnull 是 DataFrame.notna 的别名。

DataFrame.replace([to_replace, value, ...])

value替换to_replace中给定的值。

重塑、排序、转置#

DataFrame.droplevel(level[, axis])

返回删除指定索引/列级别的 Series/DataFrame。

DataFrame.pivot(*, columns[, index, values])

返回按给定的索引/列值组织的重塑 DataFrame。

DataFrame.pivot_table([values, index, ...])

创建电子表格样式的透视表作为 DataFrame。

DataFrame.reorder_levels(order[, axis])

使用输入order重新排列索引或列级别。

DataFrame.sort_values(by, *[, axis, ...])

按某个轴的值进行排序。

DataFrame.sort_index(*[, axis, level, ...])

按标签(沿某个轴)对对象进行排序。

DataFrame.nlargest(n, columns[, keep])

返回按columns降序排列的前n行。

DataFrame.nsmallest(n, columns[, keep])

返回按columns升序排列的前n行。

DataFrame.swaplevel([i, j, axis])

交换MultiIndex中的级别 i 和 j。

DataFrame.stack([level, dropna, sort, ...])

将指定的级别从列堆叠到索引。

DataFrame.unstack([level, fill_value, sort])

将(必然是分层的)索引标签的一个级别进行数据透视。

DataFrame.melt([id_vars, value_vars, ...])

将 DataFrame 从宽格式转换为长格式,并可选择保留标识符。

DataFrame.explode(column[, ignore_index])

将列表状元素的每个元素转换为一行,复制索引值。

DataFrame.squeeze([axis])

将一维轴对象压缩成标量。

DataFrame.to_xarray()

从 pandas 对象返回一个 xarray 对象。

DataFrame.T

DataFrame 的转置。

DataFrame.transpose(*args[, copy])

转置索引和列。

组合/比较/连接/合并#

DataFrame.assign(**kwargs)

为 DataFrame 分配新列。

DataFrame.compare(other[, align_axis, ...])

比较另一个 DataFrame 并显示差异。

DataFrame.join(other[, on, how, lsuffix, ...])

连接另一个 DataFrame 的列。

DataFrame.merge(right[, how, on, left_on, ...])

使用数据库风格的连接合并 DataFrame 或命名 Series 对象。

DataFrame.update(other[, join, overwrite, ...])

使用来自另一个 DataFrame 的非 NA 值就地修改。

标志#

标志指的是 pandas 对象的属性。数据集的属性(如记录日期、访问 URL 等)应存储在DataFrame.attrs中。

Flags(obj, *, allows_duplicate_labels)

适用于 pandas 对象的标志。

元数据#

DataFrame.attrs 是一个用于存储此 DataFrame 全局元数据的字典。

警告

DataFrame.attrs 被认为是实验性的,可能会在未通知的情况下更改。

DataFrame.attrs

此数据集的全局属性字典。

绘图#

DataFrame.plot 既是可调用方法,也是特定绘图方法的命名空间属性,形式为DataFrame.plot.<kind>

DataFrame.plot([x, y, kind, ax, ....])

DataFrame 绘图访问器和方法

DataFrame.plot.area([x, y, stacked])

绘制堆叠面积图。

DataFrame.plot.bar([x, y, color])

垂直条形图。

DataFrame.plot.barh([x, y, color])

绘制水平条形图。

DataFrame.plot.box([by])

绘制 DataFrame 列的箱线图。

DataFrame.plot.density([bw_method, ind, weights])

使用高斯核生成核密度估计图。

DataFrame.plot.hexbin(x, y[, C, ...])

生成六边形分箱图。

DataFrame.plot.hist([by, bins])

绘制 DataFrame 列的直方图。

DataFrame.plot.kde([bw_method, ind, weights])

使用高斯核生成核密度估计图。

DataFrame.plot.line([x, y, color])

将 Series 或 DataFrame 绘制为折线图。

DataFrame.plot.pie([y])

生成饼图。

DataFrame.plot.scatter(x, y[, s, c])

创建具有可变标记点大小和颜色的散点图。

DataFrame.boxplot([column, by, ax, ...])

绘制 DataFrame 列的箱线图。

DataFrame.hist([column, by, grid, ...])

绘制 DataFrame 列的直方图。

稀疏访问器#

稀疏 dtype 特定的方法和属性在 DataFrame.sparse 访问器下提供。

DataFrame.sparse.density

非稀疏点与总(密集)数据点之比。

DataFrame.sparse.from_spmatrix(data[, ...])

从 scipy 稀疏矩阵创建新的 DataFrame。

DataFrame.sparse.to_coo()

将 DataFrame 的内容作为稀疏 SciPy COO 矩阵返回。

DataFrame.sparse.to_dense()

将具有稀疏值的 DataFrame 转换为密集格式。

序列化/IO/转换#

DataFrame.from_arrow(data)

从表格 Arrow 对象构造 DataFrame。

DataFrame.from_dict(data[, orient, dtype, ...])

从数组或字典的字典构造 DataFrame。

DataFrame.from_records(data[, index, ...])

将结构化或记录式 ndarray 转换为 DataFrame。

DataFrame.to_orc([path, engine, index, ...])

将 DataFrame 写入 Optimized Row Columnar (ORC) 格式。

DataFrame.to_parquet([path, engine, ...])

将 DataFrame 写入二进制 parquet 格式。

DataFrame.to_pickle(path, *[, compression, ...])

将对象 pickle(序列化)到文件。

DataFrame.to_csv([path_or_buf, sep, na_rep, ...])

将对象写入逗号分隔值 (csv) 文件。

DataFrame.to_hdf(path_or_buf, *, key[, ...])

使用 HDFStore 将包含的数据写入 HDF5 文件。

DataFrame.to_sql(name, con, *[, schema, ...])

将存储在 DataFrame 中的记录写入 SQL 数据库。

DataFrame.to_dict([orient, into, index])

将 DataFrame 转换为字典。

DataFrame.to_excel(excel_writer, *[, ...])

将对象写入 Excel 工作表。

DataFrame.to_json([path_or_buf, orient, ...])

将对象转换为 JSON 字符串。

DataFrame.to_html([buf, columns, col_space, ...])

将 DataFrame 渲染为 HTML 表。

DataFrame.to_feather(path, **kwargs)

将 DataFrame 写入二进制 Feather 格式。

DataFrame.to_latex([buf, columns, header, ...])

将对象渲染为 LaTeX tabular、longtable 或嵌套表。

DataFrame.to_stata(path, *[, convert_dates, ...])

将 DataFrame 对象导出到 Stata dta 格式。

DataFrame.to_records([index, column_dtypes, ...])

将 DataFrame 转换为 NumPy 记录数组。

DataFrame.to_string([buf, columns, ...])

将 DataFrame 渲染为控制台友好的表格输出。

DataFrame.to_clipboard(*[, excel, sep])

将对象复制到系统剪贴板。

DataFrame.to_markdown([buf, mode, index, ...])

以 Markdown 友好的格式打印 DataFrame。

DataFrame.style

返回一个 Styler 对象。

DataFrame.__dataframe__([nan_as_null, ...])

(已弃用) 返回实现互操作协议的 DataFrame 互操作对象。