pandas.DataFrame # 熊猫类 。DataFrame ( data = None , index = None , columns = None , dtype = None , copy = None ) [来源] # 二维、大小可变、可能异构的表格数据。 数据结构还包含标记的轴(行和列)。算术运算在行标签和列标签上对齐。可以被认为是 Series 对象的类似字典的容器。主要的 pandas 数据结构。 参数: 数据ndarray(结构化或同类)、Iterable、dict 或 DataFrameDict 可以包含系列、数组、常量、数据类或类似列表的对象。如果数据是字典,则列顺序遵循插入顺序。如果字典包含已定义索引的系列,则它按其索引对齐。如果数据是 Series 或 DataFrame 本身,也会发生这种对齐。对齐是在系列/数据帧输入上完成的。 如果数据是字典列表,则列顺序遵循插入顺序。 索引索引或类似数组用于结果帧的索引。如果输入数据没有索引信息部分且未提供索引,则默认为 RangeIndex。 列索引或类似数组当数据没有列标签时用于结果帧的列标签,默认为 RangeIndex(0, 1, 2, …, n)。如果数据包含列标签,则将执行列选择。 dtype 数据类型,默认无数据类型强制。只允许使用单一数据类型。如果没有,则推断。 复制bool 或 None,默认 None从输入复制数据。对于 dict 数据,默认 None 的行为类似于copy=True.对于 DataFrame 或 2d ndarray 输入,默认 None 的行为类似于copy=False。如果数据是包含一个或多个系列(可能具有不同数据类型)的字典, copy=False将确保这些输入不会被复制。 在 1.3.0 版本中进行了更改。 也可以看看 DataFrame.from_records元组的构造函数,也记录数组。 DataFrame.from_dict来自系列、数组或字典的字典。 read_csv将逗号分隔值 (csv) 文件读入 DataFrame。 read_table将通用分隔文件读入 DataFrame。 read_clipboard将文本从剪贴板读取到 DataFrame 中。 笔记 请参阅用户指南以获取更多信息。 例子 从字典构造 DataFrame。 >>> d = {'col1': [1, 2], 'col2': [3, 4]} >>> df = pd.DataFrame(data=d) >>> df col1 col2 0 1 3 1 2 4 请注意,推断的数据类型是 int64。 >>> df.dtypes col1 int64 col2 int64 dtype: object 要强制执行单一数据类型: >>> df = pd.DataFrame(data=d, dtype=np.int8) >>> df.dtypes col1 int8 col2 int8 dtype: object 从包含 Series 的字典构造 DataFrame: >>> d = {'col1': [0, 1, 2, 3], 'col2': pd.Series([2, 3], index=[2, 3])} >>> pd.DataFrame(data=d, index=[0, 1, 2, 3]) col1 col2 0 0 NaN 1 1 NaN 2 2 2.0 3 3 3.0 从 numpy ndarray 构造 DataFrame: >>> df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), ... columns=['a', 'b', 'c']) >>> df2 a b c 0 1 2 3 1 4 5 6 2 7 8 9 从具有标签列的 numpy ndarray 构造 DataFrame: >>> data = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)], ... dtype=[("a", "i4"), ("b", "i4"), ("c", "i4")]) >>> df3 = pd.DataFrame(data, columns=['c', 'a']) ... >>> df3 c a 0 3 1 1 6 4 2 9 7 从数据类构造 DataFrame: >>> from dataclasses import make_dataclass >>> Point = make_dataclass("Point", [("x", int), ("y", int)]) >>> pd.DataFrame([Point(0, 0), Point(0, 3), Point(2, 3)]) x y 0 0 0 1 0 3 2 2 3 从 Series/DataFrame 构造 DataFrame: >>> ser = pd.Series([1, 2, 3], index=["a", "b", "c"]) >>> df = pd.DataFrame(data=ser, index=["a", "c"]) >>> df 0 a 1 c 3 >>> df1 = pd.DataFrame([1, 2, 3], index=["a", "b", "c"], columns=["x"]) >>> df2 = pd.DataFrame(data=df1, index=["a", "c"]) >>> df2 x a 1 c 3 属性 T DataFrame 的转置。 at 访问行/列标签对的单个值。 attrs 该数据集的全局属性字典。 axes 返回表示 DataFrame 轴的列表。 columns DataFrame 的列标签。 dtypes 返回 DataFrame 中的 dtype。 empty 指示Series/DataFrame是否为空。 flags 获取与此 pandas 对象关联的属性。 iat 按整数位置访问行/列对的单个值。 iloc (已弃用)纯粹基于整数位置的索引,用于按位置选择。 index DataFrame 的索引(行标签)。 loc 通过标签或布尔数组访问一组行和列。 ndim 返回一个 int 表示轴数/数组维度。 shape 返回表示 DataFrame 维度的元组。 size 返回一个 int 表示该对象中元素的数量。 style 返回一个 Styler 对象。 values 返回 DataFrame 的 Numpy 表示形式。 方法 abs() 返回包含每个元素的绝对数值的 Series/DataFrame。 add(其他[,轴,级别,填充值]) 获取数据帧和其他元素的加法(二元运算符add)。 add_prefix(前缀[,轴]) 带有字符串prefix 的前缀标签。 add_suffix(后缀[,轴]) 后缀标签带有字符串后缀。 agg([函数,轴]) 使用指定轴上的一项或多项操作进行聚合。 aggregate([函数,轴]) 使用指定轴上的一项或多项操作进行聚合。 align(其他[、连接、轴、级别、复制、...]) 使用指定的连接方法将两个对象在其轴上对齐。 all([轴,bool_only,skipna]) 返回是否所有元素都为 True(可能在轴上)。 any(*[,轴,bool_only,skipna]) 返回任何元素是否为 True,可能在轴上。 apply(func[, axis, raw, result_type, args, ...]) 沿 DataFrame 的轴应用函数。 applymap(func[, na_action]) (已弃用)将函数按元素应用于 Dataframe。 asfreq(频率[、方法、如何、标准化、...]) 将时间序列转换为指定频率。 asof(其中[,子集]) 返回最后一行,其中where之前没有任何 NaN 。 assign(**夸格斯) 将新列分配给 DataFrame。 astype(dtype[, 复制, 错误]) 将 pandas 对象转换为指定的 dtype dtype。 at_time(时间[,asof,轴]) 选择一天中特定时间的值(例如上午 9:30)。 backfill(*[、轴、就地、限制、向下]) (已弃用)通过使用下一个有效观察来填充 NA/NaN 值来填补空白。 between_time(开始时间,结束时间[,...]) 选择一天中特定时间之间的值(例如上午 9:00-9:30)。 bfill(*[、轴、就地、限制、限制区域、...]) 通过使用下一个有效观察来填补空白来填充 NA/NaN 值。 bool() (已弃用)返回单个元素 Series 或 DataFrame 的 bool。 boxplot([列、按、斧头、字体大小、旋转、...]) 根据 DataFrame 列绘制箱线图。 clip([下、上、轴、就地]) 在输入阈值处修剪值。 combine(其他,func[,填充值,覆盖]) 与另一个 DataFrame 执行按列组合。 combine_first(其他) 使用other中相同位置的值更新 null 元素。 compare(其他[,align_axis,keep_shape,...]) 与另一个 DataFrame 进行比较并显示差异。 convert_dtypes([推断对象,...]) 使用 dtypes 支持将列转换为最佳可能的 dtypes pd.NA。 copy([深的]) 复制该对象的索引和数据。 corr([方法,最小周期,仅限数字]) 计算列的成对相关性,不包括 NA/null 值。 corrwith(其他[,轴,下降,方法,...]) 计算成对相关性。 count([轴,仅数字]) 计算每列或行的非 NA 单元格数量。 cov([min_periods, ddof, numeric_only]) 计算列的成对协方差,不包括 NA/null 值。 cummax([轴,跳过]) 返回 DataFrame 或 Series 轴上的累积最大值。 cummin([轴,跳过]) 返回 DataFrame 或 Series 轴上的累积最小值。 cumprod([轴,跳过]) 返回 DataFrame 或 Series 轴上的累积乘积。 cumsum([轴,跳过]) 返回 DataFrame 或 Series 轴上的累积和。 describe([百分位数、包括、排除]) 生成描述性统计数据。 diff([周期、轴]) 元素的第一个离散差分。 div(其他[,轴,级别,填充值]) 获取数据帧和其他元素的浮动除法(二元运算符truediv)。 divide(其他[,轴,级别,填充值]) 获取数据帧和其他元素的浮动除法(二元运算符truediv)。 dot(其他) 计算 DataFrame 和其他 DataFrame 之间的矩阵乘法。 drop([标签、轴、索引、列、级别...]) 从行或列中删除指定的标签。 drop_duplicates([子集、保留、就地、...]) 返回删除了重复行的 DataFrame。 droplevel(水平[,轴]) 返回系列/数据帧,并删除请求的索引/列级别。 dropna(*[、轴、如何、脱粒、子集、...]) 删除缺失值。 duplicated([子集,保留]) 返回表示重复行的布尔系列。 eq(其他[,轴,水平]) 获取数据帧和其他元素的等于(二元运算符eq)。 equals(其他) 测试两个对象是否包含相同的元素。 eval(expr, *[, 就地]) 评估描述 DataFrame 列操作的字符串。 ewm([com、span、半衰期、alpha、...]) 提供指数加权 (EW) 计算。 expanding([min_periods, 轴, 方法]) 提供扩展窗口计算。 explode(列[,忽略索引]) 将类似列表的每个元素转换为一行,复制索引值。 ffill(*[、轴、就地、限制、限制区域、...]) 通过将最后一个有效观测值传播到下一个有效观测值来填充 NA/NaN 值。 fillna([值、方法、轴、就地、...]) 使用指定的方法填充 NA/NaN 值。 filter([项目,如,正则表达式,轴]) 根据指定的索引标签对数据帧行或列进行子集化。 first(抵消) (已弃用)根据日期偏移选择时间序列数据的初始周期。 first_valid_index() 返回第一个非 NA 值的索引,如果未找到非 NA 值,则返回 None。 floordiv(其他[,轴,级别,填充值]) 获取数据帧和其他元素的整数除法(二元运算符Floordiv)。 from_dict(数据[,方向,数据类型,列]) 从类似数组的字典或字典构造 DataFrame。 from_records(数据[、索引、排除、...]) 将结构化或记录 ndarray 转换为 DataFrame。 ge(其他[,轴,水平]) 获取大于或等于数据帧和其他元素(二元运算符ge)。 get(键[,默认]) 从给定键的对象中获取项目(例如:DataFrame 列)。 groupby([按、轴、级别、as_index、排序、...]) 使用映射器或一系列列对 DataFrame 进行分组。 gt(其他[,轴,水平]) 获取大于数据帧和其他元素的数据(二元运算符gt)。 head([n]) 返回前n行。 hist([列、按、网格、xlabelsize、xrot、...]) 制作 DataFrame 列的直方图。 idxmax([轴,skipna,仅限数字]) 返回请求轴上第一次出现最大值的索引。 idxmin([轴,skipna,仅限数字]) 返回请求轴上第一次出现最小值的索引。 infer_objects([复制]) 尝试为对象列推断更好的数据类型。 info([详细、buf、max_cols、内存使用情况、...]) 打印 DataFrame 的简洁摘要。 insert(loc,列,值[,允许重复项]) 将列插入 DataFrame 中的指定位置。 interpolate([方法、轴、限制、就地、...]) 使用插值方法填充 NaN 值。 isetitem(位置,值) 在位置为loc 的列中设置给定值。 isin(数值) DataFrame 中的每个元素是否包含在值中。 isna() 检测缺失值。 isnull() DataFrame.isnull 是 DataFrame.isna 的别名。 items() 迭代(列名称,系列)对。 iterrows() 将 DataFrame 行作为(索引,系列)对进行迭代。 itertuples([索引、名称]) 将 DataFrame 行作为命名元组进行迭代。 join(其他[,关于,如何,lsuffix,rsuffix,...]) 连接另一个 DataFrame 的列。 keys() 获取“信息轴”(有关更多信息,请参阅索引)。 kurt([轴,skipna,仅限数字]) 返回请求轴上的无偏峰度。 kurtosis([轴,skipna,仅限数字]) 返回请求轴上的无偏峰度。 last(抵消) (已弃用)根据日期偏移选择时间序列数据的最终周期。 last_valid_index() 返回最后一个非 NA 值的索引,如果未找到非 NA 值,则返回 None。 le(其他[,轴,水平]) 获取小于或等于数据帧和其他元素(二元运算符le)。 lt(其他[,轴,水平]) 获取小于数据帧和其他元素的数据(二元运算符lt)。 map(func[, na_action]) 按元素将函数应用于数据框。 mask(cond[,其他,就地,轴,水平]) 替换条件为 True 的值。 max([轴,skipna,仅限数字]) 返回请求轴上的最大值。 mean([轴,skipna,仅限数字]) 返回请求轴上的值的平均值。 median([轴,skipna,仅限数字]) 返回请求轴上的值的中位数。 melt([id_vars, value_vars, var_name, ...]) 将 DataFrame 从宽格式逆透视为长格式,可以选择保留标识符集。 memory_usage([索引,深度]) 返回每列的内存使用情况(以字节为单位)。 merge(右[,如何,上,左_上,右_上,...]) 使用数据库样式连接合并 DataFrame 或命名 Series 对象。 min([轴,skipna,仅限数字]) 返回请求轴上的最小值。 mod(其他[,轴,级别,填充值]) 获取数据帧和其他元素的模(二元运算符mod)。 mode([轴,仅限数字,dropna]) 获取沿选定轴的每个元素的模式。 mul(其他[,轴,级别,填充值]) 获取数据帧和其他元素的乘法(二元运算符mul)。 multiply(其他[,轴,级别,填充值]) 获取数据帧和其他元素的乘法(二元运算符mul)。 ne(其他[,轴,水平]) 获取数据帧和其他元素的不等于(二元运算符ne)。 nlargest(n,列[,保留]) 返回按列降序排列的前n行。 notna() 检测现有(非缺失)值。 notnull() DataFrame.notnull 是 DataFrame.notna 的别名。 nsmallest(n,列[,保留]) 返回按列升序排列的前n行。 nunique([轴, dropna]) 计算指定轴中不同元素的数量。 pad(*[、轴、就地、限制、向下]) (已弃用)通过将最后一个有效观测值传播到下一个有效观测值来填充 NA/NaN 值。 pct_change([周期、填充方法、限制、频率]) 当前元素与先前元素之间的分数变化。 pipe(func, *args, **kwargs) 应用需要 Series 或 DataFrame 的可链接函数。 pivot(*, 列[, 索引, 值]) 返回按给定索引/列值组织的重塑的 DataFrame。 pivot_table([值、索引、列...]) 创建电子表格样式的数据透视表作为 DataFrame。 pop(物品) 返回物品并从框架中掉落。 pow(其他[,轴,级别,填充值]) 获取数据帧和其他元素的指数幂(二元运算符pow)。 prod([轴、skipna、numeric_only、min_count]) 返回请求轴上的值的乘积。 product([轴、skipna、numeric_only、min_count]) 返回请求轴上的值的乘积。 quantile([q, 轴, numeric_only, ...]) 返回请求轴上给定分位数的值。 query(expr, *[, 就地]) 使用布尔表达式查询 DataFrame 的列。 radd(其他[,轴,级别,填充值]) 获取数据帧和其他元素的加法(二元运算符radd)。 rank([轴、方法、仅限数字、...]) 计算沿轴的数值数据排名(1 到 n)。 rdiv(其他[,轴,级别,填充值]) 获取数据帧和其他元素的浮动除法(二元运算符rtruediv)。 reindex([标签、索引、列、轴...]) 使用可选的填充逻辑使 DataFrame 符合新索引。 reindex_like(其他[、方法、复制、限制、...]) 返回一个与其他对象具有匹配索引的对象。 rename([映射器、索引、列、轴、副本、...]) 重命名列或索引标签。 rename_axis([映射器、索引、列、轴、...]) 设置索引或列的轴名称。 reorder_levels(顺序[,轴]) 使用输入顺序重新排列索引级别。 replace([要替换、值、就地、限制、...]) 将to_replace中给出的值替换为value。 resample(规则[,轴,闭合,标签,...]) 对时间序列数据重新采样。 reset_index([水平、下降、就地、...]) 重置索引或其级别。 rfloordiv(其他[,轴,级别,填充值]) 获取数据帧和其他元素的整数除法(二元运算符rfloordiv)。 rmod(其他[,轴,级别,填充值]) 获取数据帧和其他元素的模(二元运算符rmod)。 rmul(其他[,轴,级别,填充值]) 获取数据帧和其他元素的乘法(二元运算符rmul)。 rolling(窗口[,最小周期,中心,...]) 提供滚动窗口计算。 round([小数点]) 将 DataFrame 舍入为可变的小数位数。 rpow(其他[,轴,级别,填充值]) 获取数据帧和其他元素的指数幂(二元运算符rpow)。 rsub(其他[,轴,级别,填充值]) 获取数据帧和其他元素的减法(二元运算符rsub)。 rtruediv(其他[,轴,级别,填充值]) 获取数据帧和其他元素的浮动除法(二元运算符rtruediv)。 sample([n, frac, 替换, 权重, ...]) 从对象轴返回项目的随机样本。 select_dtypes([包括、排除]) 根据列 dtypes 返回 DataFrame 列的子集。 sem([轴、skipna、ddof、numeric_only]) 返回请求轴上平均值的无偏标准误差。 set_axis(标签,*[,轴,副本]) 将所需索引分配给给定轴。 set_flags(*[,复制,允许重复标签]) 返回带有更新标志的新对象。 set_index(键、*[、删除、追加、就地、...]) 使用现有列设置 DataFrame 索引。 shift([周期、频率、轴、填充值、后缀]) 使用可选的时间频率将索引移动所需的周期数。 skew([轴,skipna,仅限数字]) 返回请求轴上的无偏斜。 sort_index(*[、轴、级别、升序、...]) 按标签对对象进行排序(沿轴)。 sort_values(按、*[、轴、升序、...]) 按沿任一轴的值排序。 squeeze([轴]) 将一维轴对象压缩为标量。 stack([级别、dropna、排序、future_stack]) 将指定级别从列堆叠到索引。 std([轴、skipna、ddof、numeric_only]) 返回请求轴上的样本标准差。 sub(其他[,轴,级别,填充值]) 获取数据帧和其他元素的减法(二元运算符sub)。 subtract(其他[,轴,级别,填充值]) 获取数据帧和其他元素的减法(二元运算符sub)。 sum([轴、skipna、numeric_only、min_count]) 返回请求轴上的值的总和。 swapaxes(轴1,轴2[,复制]) (已弃用)适当地互换轴和交换值轴。 swaplevel([i,j,轴]) 交换 a 中的 i 和 j 级MultiIndex。 tail([n]) 返回最后n行。 take(索引[,轴]) 返回沿轴给定位置索引中的元素。 to_clipboard(*[, excel, 九月]) 将对象复制到系统剪贴板。 to_csv([path_or_buf, sep, na_rep, ...]) 将对象写入逗号分隔值 (csv) 文件。 to_dict([定向、进入、索引]) 将 DataFrame 转换为字典。 to_excel(excel_writer, *[, 工作表名称, ...]) 将对象写入 Excel 工作表。 to_feather(路径,**kwargs) 将 DataFrame 写入二进制 Feather 格式。 to_gbq(目的地表、*[、项目 ID、...]) (已弃用)将 DataFrame 写入 Google BigQuery 表。 to_hdf(path_or_buf, *, key[, 模式, ...]) 使用 HDFStore 将包含的数据写入 HDF5 文件。 to_html([buf、列、col_space、标题、...]) 将 DataFrame 渲染为 HTML 表。 to_json([path_or_buf, orient, date_format, ...]) 将对象转换为 JSON 字符串。 to_latex([buf、列、标题、索引、...]) 将对象渲染为 LaTeX 表格、长表或嵌套表。 to_markdown([buf、模式、索引、存储选项]) 以 Markdown 友好的格式打印 DataFrame。 to_numpy([dtype, 副本, na_value]) 将 DataFrame 转换为 NumPy 数组。 to_orc([路径、引擎、索引、engine_kwargs]) 将 DataFrame 写入 ORC 格式。 to_parquet([路径、引擎、压缩、...]) 将 DataFrame 写入二进制 parquet 格式。 to_period([频率、轴、副本]) 将 DataFrame 从 DatetimeIndex 转换为 periodIndex。 to_pickle(路径、*[、压缩、协议、...]) 将对象腌制(序列化)到文件。 to_records([索引,column_dtypes,index_dtypes]) 将 DataFrame 转换为 NumPy 记录数组。 to_sql(名称、con、*[、模式、if_exists、...]) 将存储在 DataFrame 中的记录写入 SQL 数据库。 to_stata(路径,*[,转换日期,...]) 将 DataFrame 对象导出为 Stata dta 格式。 to_string([buf、列、col_space、标题、...]) 将 DataFrame 渲染为控制台友好的表格输出。 to_timestamp([频率、方式、轴、复制]) 在周期开始时转换为时间戳的 DatetimeIndex 。 to_xarray() 从 pandas 对象返回一个 xarray 对象。 to_xml([路径或缓冲区、索引、根名称、...]) 将 DataFrame 呈现为 XML 文档。 transform(函数[,轴]) 调用funcself 生成一个与 self 具有相同轴形状的 DataFrame。 transpose(*参数[,复制]) 转置索引和列。 truediv(其他[,轴,级别,填充值]) 获取数据帧和其他元素的浮动除法(二元运算符truediv)。 truncate([之前、之后、轴、复制]) 在某个索引值之前和之后截断 Series 或 DataFrame。 tz_convert(tz[, 轴, 水平, 复制]) 将 tz 感知轴转换为目标时区。 tz_localize(tz[, 轴, 水平, 复制, ...]) 将 Series 或 DataFrame 的 tz-naive 索引本地化到目标时区。 unstack([级别、填充值、排序]) 透视索引标签的一个级别(必须是分层的)。 update(其他[、加入、覆盖、...]) 使用另一个 DataFrame 中的非 NA 值进行适当修改。 value_counts([子集、标准化、排序、...]) 返回一个包含数据框中每个不同行的频率的系列。 var([轴、skipna、ddof、numeric_only]) 返回请求轴上的无偏方差。 where(cond[,其他,就地,轴,水平]) 替换条件为 False 的值。 xs(键[,轴,级别,drop_level]) 从系列/数据帧返回横截面。