DataFrame#

构造函数#

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

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

属性和底层数据#

Axes

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 dtypes 转换为支持 pd.NA 的最佳 dtypes。

DataFrame.infer_objects([copy])

尝试为对象列推断更好的数据类型。

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()

遍历 (列名, 系列) 对。

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 中的每个元素是否包含在值中。

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

在条件为假的地方替换值。

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

在条件为真时替换值。

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

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

DataFrame.isetitem(loc, value)

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

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

二元运算符函数#

DataFrame.__add__(other)

获取 DataFrame 和其他数据框的列式相加结果。

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

获取数据框和其他对象的逐元素相加结果(二元运算符 add)。

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

获取数据框和其他对象之间的逐元素减法(二元运算符 sub)。

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

获取数据框和其他元素的乘积,逐元素操作(二元运算符 mul)。

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

获取数据框和其他元素的浮点除法(二元运算符 truediv)。

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

获取数据框和其他元素的浮点除法(二元运算符 truediv)。

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

获取数据框和其他对象的整数除法,逐元素操作(二元运算符 floordiv)。

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

获取数据框和其他对象的元素级模运算(二元运算符 mod)。

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

获取数据框和其他元素的指数幂(二元运算符 pow)。

DataFrame.dot(other)

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

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

获取数据框和其他对象的逐元素相加结果(二元运算符 radd)。

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

获取数据框和其他对象之间的元素减法(二元运算符 rsub)。

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

获取数据框和其他元素的乘积,逐元素操作(二元运算符 rmul)。

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

获取数据框和其他对象的浮点除法,逐元素操作(二元运算符 rtruediv)。

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

获取数据框和其他对象的浮点除法,逐元素操作(二元运算符 rtruediv)。

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

获取数据框和其他对象的整数除法,逐元素操作(二元运算符 rfloordiv)。

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

获取数据框和其他对象的模数,逐元素(二元运算符 rmod)。

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

获取数据框和其他元素的指数幂(二元运算符 rpow)。

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

Get Greater than of dataframe and other, element-wise (binary operator lt).

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

获取数据框和其他元素之间的更大值,逐元素比较(二元运算符 gt)。

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

Get Greater than or equal to of dataframe and other, element-wise (binary operator le).

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

获取数据框和其他元素的“大于或等于”结果,逐元素操作(二元运算符 ge)。

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

获取数据框和另一个数据框的元素不等(二元运算符 ne)。

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

Get Not equal to of dataframe and other, element-wise (binary operator 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 或 DataFrames 的可链接函数。

DataFrame.agg([func, axis])

在指定轴上使用一个或多个操作进行聚合。

DataFrame.aggregate([func, axis])

在指定轴上使用一个或多个操作进行聚合。

DataFrame.transform(func[, axis])

在自身上调用 func 生成一个与自身轴形状相同的 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, ...])

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

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

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])

返回表示重复行的布尔序列。

DataFrame.equals(other)

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

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

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

DataFrame.head([n])

返回前 n 行。

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(标签, *[, 轴, 复制])

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

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

使用现有列设置 DataFrame 索引。

DataFrame.tail([n])

返回最后 n 行。

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, ...])

to_replace 中的值替换为 value

重塑、排序、转置#

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值就地修改。

Flags#

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

标志(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 列的直方图。

稀疏访问器#

DataFrame.sparse 访问器下提供了稀疏数据类型特定的方法和属性。

DataFrame.sparse.density

非稀疏点到总(密集)数据点的比例。

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

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

DataFrame.sparse.to_coo()

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

DataFrame.sparse.to_dense()

将包含稀疏值的 DataFrame 转换为密集型。

序列化 / IO / 转换#

DataFrame.from_dict(数据[, 方向, 数据类型, ...])

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

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

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

DataFrame.to_orc([路径, 引擎, 索引, ...])

将一个 DataFrame 写入优化行列(ORC)格式。

DataFrame.to_parquet([路径, 引擎, ...])

将一个 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 表格、长表格或嵌套表格。

DataFrame.to_stata(路径, *[, 转换日期, ...])

将 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, ...])

返回实现交换协议的数据帧交换对象。