pandas.DataFrame #

熊猫类 DataFrame ( data = None , index = None , columns = None , dtype = None , copy = None ) [来源] #

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

数据结构还包含标记的轴(行和列)。算术运算在行标签和列标签上对齐。可以被认为是 Series 对象的类似字典的容器。主要的 pandas 数据结构。

参数
数据ndarray(结构化或同类)、Iterable、dict 或 DataFrame

Dict 可以包含系列、数组、常量、数据类或类似列表的对象。如果数据是字典,则列顺序遵循插入顺序。如果字典包含已定义索引的系列,则它按其索引对齐。如果数据是 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])

从系列/数据帧返回横截面。