pandas.DataFrame#

class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)[源代码]#

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

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

参数
dataNdarray(结构化或同构)、Iterable、Dict或DataFrame

DICT可以包含序列、数组、常量、数据类或类似列表的对象。如果数据是词典,则列顺序遵循插入顺序。如果词典包含定义了索引的系列,则按其索引对齐。

在 0.25.0 版更改: 如果数据是字典列表,则列顺序遵循插入顺序。

index索引或类似数组

用于结果帧的索引。如果没有输入数据的索引信息部分并且没有提供索引,则默认为RangeIndex。

columns索引或类似数组

数据没有列标签时用于结果框架的列标签,默认为RangeIndex(0,1,2,...,n)。如果数据包含列标签,将改为执行列选择。

dtype数据类型,默认为无

要强制的数据类型。只允许使用单一数据类型。如果没有,则推断。

copyBool或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中。

注意事项

请参考 User Guide 了解更多信息。

示例

从词典构造DataFrame。

>>> d = {'col1': [1, 2], 'col2': [3, 4]}
>>> df = pd.DataFrame(data=d)
>>> df
   col1  col2
0     1     3
1     2     4

请注意,推断的dtype为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

从包含系列的字典构造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

使用带有标签列的稀疏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

属性

at 

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

attrs 

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

axes 

返回表示DataFrame轴的列表。

columns 

DataFrame的列标签。

dtypes 

返回DataFrame中的数据类型。

empty 

指示Series/DataFrame是否为空。

flags 

获取与此Pandas对象关联的属性。

iat 

按整数位置访问行/列对的单个值。

iloc 

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

index 

DataFrame的索引(行标签)。

loc 

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

ndim 

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

shape 

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

size 

返回一个int,表示此对象中的元素数。

style 

返回Styler对象。

values 

返回DataFrame的Numpy表示形式。

T

方法:

abs \()

返回一个具有每个元素的绝对数值的Series/DataFrame。

add \(其他[, axis, level, fill_value] )

按元素(二元运算符)获取数据帧和其他元素的相加 add )。

add_prefix \(前缀)

使用字符串为标签添加前缀 prefix

add_suffix \(后缀)

使用字符串为标签添加后缀 suffix

agg \([func, axis] )

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

aggregate \([func, axis] )

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

align \(其他[, join, axis, level, copy, ...] )

将两个对象的轴向与指定的联接方法对齐。

all \([axis, bool_only, skipna, level] )

返回是否所有元素都为True,可能是在某个轴上。

any \([axis, bool_only, skipna, level] )

返回是否有任何元素为True,可能是在轴上。

append \(其他[, ignore_index, ...] )

(已弃用)追加的行 other 到调用者的末尾,返回一个新对象。

apply \(函数[, axis, raw, result_type, args] )

沿DataFrame的轴应用函数。

applymap \(函数[, na_action] )

以元素方式将函数应用于数据帧。

asfreq \(频率 [, method, how, normalize, ...] )

将时间序列转换为指定频率。

asof \(其中 [, subset] )

返回之前没有任何NAN的最后一行 where

assign \(** Kwargs)

将新列分配给DataFrame。

astype \(dtype[, copy, errors] )

将Pandas对象强制转换为指定的dtype dtype

at_time \(时间[, asof, axis] )

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

backfill \([axis, inplace, limit, downcast] )

的同义词 DataFrame.fillna() 使用 method='bfill'

between_time \(开始_时间,结束_时间 [, ...] )

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

bfill \([axis, inplace, limit, downcast] )

的同义词 DataFrame.fillna() 使用 method='bfill'

bool \()

返回单个元素Series或DataFrame的布尔值。

boxplot \([column, by, ax, fontsize, rot, ...] )

从DataFrame列制作框图。

clip \([lower, upper, axis, inplace] )

修剪输入阈值上的值。

combine \(其他、函数 [, fill_value, overwrite] )

与另一个DataFrame执行列合并。

combine_first \(其他)

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

compare \(其他[, align_axis, keep_shape, ...] )

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

convert_dtypes \([infer_objects, ...] )

使用支持的数据类型将列转换为最佳数据类型 pd.NA

copy \([deep] )

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

corr \([method, min_periods, numeric_only] )

计算列的成对关联,不包括NA/NULL值。

corrwith \(其他[, axis, drop, method, ...] )

计算成对相关。

count \([axis, level, numeric_only] )

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

cov \([min_periods, ddof, numeric_only] )

计算列的成对协方差,不包括NA/NULL值。

cummax \([axis, skipna] )

返回DataFrame或Series轴上的累计最大值。

cummin \([axis, skipna] )

返回DataFrame或Series轴上的累计最小值。

cumprod \([axis, skipna] )

返回DataFrame或Series轴上的累计积。

cumsum \([axis, skipna] )

返回DataFrame或Series轴上的累计和。

describe \([percentiles, include, exclude, ...] )

生成描述性统计数据。

diff \([periods, axis] )

单元的一阶离散差分。

div \(其他[, axis, level, fill_value] )

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

divide \(其他[, axis, level, fill_value] )

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

dot \(其他)

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

drop \([labels, axis, index, columns, level, ...] )

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

drop_duplicates \([subset, keep, inplace, ...] )

返回删除了重复行的DataFrame。

droplevel \(级别[, axis] )

返回删除了请求的索引/列级别的Series/DataFrame。

dropna \([axis, how, thresh, subset, inplace] )

删除缺少的值。

duplicated \([subset, keep] )

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

eq \(其他[, axis, level] )

按元素(二元运算符)获取数据帧和其他的等于 eq )。

equals \(其他)

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

eval \(表达式[, inplace] )

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

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

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

expanding \([min_periods, center, axis, method] )

提供扩展窗口计算。

explode \(列[, ignore_index] )

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

ffill \([axis, inplace, limit, downcast] )

的同义词 DataFrame.fillna() 使用 method='ffill'

fillna \([value, method, axis, inplace, ...] )

使用指定的方法填充NA/NaN值。

filter \([items, like, regex, axis] )

根据指定的索引标签子集数据帧的行或列。

first \(偏移)

根据日期偏移量选择时间序列数据的初始期间。

first_valid_index \()

返回第一个非NA值的索引,如果没有找到非NA值,则返回NONE。

floordiv \(其他[, axis, level, fill_value] )

按元素(二元运算符)获取数据帧和其他数据的整数除法 floordiv )。

from_dict \(数据[, orient, dtype, columns] )

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

from_records \(数据[, index, exclude, ...] )

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

ge \(其他[, axis, level] )

获取大于或等于数据帧和其他元素(二元运算符 ge )。

get \(密钥[, default] )

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

groupby \([by, axis, level, as_index, sort, ...] )

使用映射器或按一系列列对DataFrame进行分组。

gt \(其他[, axis, level] )

获取数据帧和其他元素的大于(二元运算符 gt )。

head \([n] )

返回第一个 n 排好了。

hist \([column, by, grid, xlabelsize, xrot, ...] )

制作DataFrame的列的直方图。

idxmax \([axis, skipna] )

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

idxmin \([axis, skipna] )

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

infer_objects \()

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

info \([verbose, buf, max_cols, memory_usage, ...] )

打印DataFrame的简明摘要。

insert \(位置,列,值[, allow_duplicates] )

在DataFrame中的指定位置插入列。

interpolate \([method, axis, limit, inplace, ...] )

使用插值法填充NaN值。

isin \(值)

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

isna \()

检测缺少的值。

isnull \()

DataFrame.isull是DataFrame.isna的别名。

items \()

迭代(列名,系列)对。

iteritems \()

迭代(列名,系列)对。

iterrows \()

将DataFrame行作为(索引,系列)对进行迭代。

itertuples \([index, name] )

将DataFrame行作为命名元组进行迭代。

join \(其他[, on, how, lsuffix, rsuffix, sort] )

联接另一个DataFrame的列。

keys \()

获取‘INFO轴’(参见索引了解更多信息)。

kurt \([axis, skipna, level, numeric_only] )

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

kurtosis \([axis, skipna, level, numeric_only] )

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

last \(偏移)

根据日期偏移量选择时间序列数据的最终期间。

last_valid_index \()

返回最后一个非NA值的索引,如果没有找到非NA值,则返回NONE。

le \(其他[, axis, level] )

按元素(二元运算符)获取小于或等于的数据帧和其他 le )。

lookup \(行_标签,列_标签)

(已弃用)DataFrame的基于标签的“奇特索引”函数。

lt \(其他[, axis, level] )

获取小于数据帧和其他元素(二元运算符 lt )。

mad \([axis, skipna, level] )

(已弃用)返回值在请求的轴上的平均绝对偏差。

mask \(条件[, other, inplace, axis, level, ...] )

替换条件为True的值。

max \([axis, skipna, level, numeric_only] )

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

mean \([axis, skipna, level, numeric_only] )

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

median \([axis, skipna, level, numeric_only] )

返回值在请求的轴上的中位数。

melt \([id_vars, value_vars, var_name, ...] )

将DataFrame从宽格式取消透视为长格式,可以选择保留设置的标识符。

memory_usage \([index, deep] )

以字节为单位返回每列的内存使用情况。

merge \(右[, how, on, left_on, right_on, ...] )

将DataFrame或命名系列对象与数据库样式联接合并。

min \([axis, skipna, level, numeric_only] )

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

mod \(其他[, axis, level, fill_value] )

获取数据帧和其他元素的模数(二元运算符 mod )。

mode \([axis, numeric_only, dropna] )

获取沿所选轴的每个元素的模式。

mul \(其他[, axis, level, fill_value] )

获得数据帧和其他元素的乘法(二元运算符 mul )。

multiply \(其他[, axis, level, fill_value] )

获得数据帧和其他元素的乘法(二元运算符 mul )。

ne \(其他[, axis, level] )

Get Not等于of DataFrame and Other,以元素为单位(二元运算符 ne )。

nlargest \(n,列[, keep] )

返回第一个 n 行排序依据 columns 按降序排列。

notna \()

检测现有(非缺失)值。

notnull \()

DataFrame.notull是DataFrame.notna的别名。

nsmallest \(n,列[, keep] )

返回第一个 n 行排序依据 columns 按升序排列。

nunique \([axis, dropna] )

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

pad \([axis, inplace, limit, downcast] )

的同义词 DataFrame.fillna() 使用 method='ffill'

pct_change \([periods, fill_method, limit, freq] )

当前元素和前一个元素之间的百分比变化。

pipe \(函数,*args, * *kwargs)

应用预期为Series或DataFrame的可链接函数。

pivot \([index, columns, values] )

返回按给定索引/列值组织的整形DataFrame。

pivot_table \([values, index, columns, ...] )

将电子表格样式的数据透视表创建为DataFrame。

plot 

:py:class:`pandas.plotting._core.PlotAccessor`的别名

pop \(项目)

返回项目并从框架中删除。

pow \(其他[, axis, level, fill_value] )

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

prod \([axis, skipna, level, numeric_only, ...] )

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

product \([axis, skipna, level, numeric_only, ...] )

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

quantile \([q, axis, numeric_only, interpolation] )

在请求的轴上返回给定分位数的值。

query \(表达式[, inplace] )

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

radd \(其他[, axis, level, fill_value] )

按元素(二元运算符)获取数据帧和其他元素的相加 radd )。

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

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

rdiv \(其他[, axis, level, fill_value] )

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

reindex \([labels, index, columns, axis, ...] )

使Series/DataFrame符合具有可选填充逻辑的新索引。

reindex_like \(其他[, method, copy, limit, ...] )

将索引匹配的对象作为其他对象返回。

rename \([mapper, index, columns, axis, copy, ...] )

更改轴标签。

rename_axis \([mapper, index, columns, axis, ...] )

设置索引或列的轴的名称。

reorder_levels \(订单[, axis] )

使用输入顺序重新排列索引级别。

replace \([to_replace, value, inplace, limit, ...] )

替换中给出的值 to_replace 使用 value

resample \(规则[, axis, closed, label, ...] )

重新采样时间序列数据。

reset_index \([level, drop, inplace, ...] )

重置索引或其级别。

rfloordiv \(其他[, axis, level, fill_value] )

按元素(二元运算符)获取数据帧和其他数据的整数除法 rfloordiv )。

rmod \(其他[, axis, level, fill_value] )

获取数据帧和其他元素的模数(二元运算符 rmod )。

rmul \(其他[, axis, level, fill_value] )

获得数据帧和其他元素的乘法(二元运算符 rmul )。

rolling \(窗口[, min_periods, center, ...] )

提供滚动窗口计算。

round \([decimals] )

将DataFrame四舍五入到小数位数可变。

rpow \(其他[, axis, level, fill_value] )

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

rsub \(其他[, axis, level, fill_value] )

获取数据帧和其他元素的减法(二元运算符 rsub )。

rtruediv \(其他[, axis, level, fill_value] )

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

sample \([n, frac, replace, weights, ...] )

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

select_dtypes \([include, exclude] )

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

sem \([axis, skipna, level, ddof, numeric_only] )

返回请求轴上平均值的无偏标准误差。

set_axis \(标签[, axis, inplace] )

将所需的索引指定给给定轴。

set_flags \(*[, copy, allows_duplicate_labels] )

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

set_index \(密钥[, drop, append, inplace, ...] )

使用现有列设置DataFrame索引。

shift \([periods, freq, axis, fill_value] )

使用可选时间按所需期间数移位索引 freq

skew \([axis, skipna, level, numeric_only] )

返回请求的轴上的无偏斜。

slice_shift \([periods, axis] )

(已弃用)等同于 shift 而不复制数据。

sort_index \([axis, level, ascending, ...] )

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

sort_values \(由[, axis, ascending, inplace, ...] )

按任一轴上的值排序。

sparse 

:py:class:`pandas.core.arrays.sparse.accessor.SparseFrameAccessor`的别名

squeeze \([axis] )

将1维轴对象压缩为标量。

stack \([level, dropna] )

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

std \([axis, skipna, level, ddof, numeric_only] )

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

sub \(其他[, axis, level, fill_value] )

获取数据帧和其他元素的减法(二元运算符 sub )。

subtract \(其他[, axis, level, fill_value] )

获取数据帧和其他元素的减法(二元运算符 sub )。

sum \([axis, skipna, level, numeric_only, ...] )

返回请求的轴上的值的总和。

swapaxes \(axis1、axis2[, copy] )

适当地互换轴和交换值轴。

swaplevel \([i, j, axis] )

中交换级别i和j。 MultiIndex

tail \([n] )

退还最后一张 n 排好了。

take \(索引[, axis, is_copy] )

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

to_clipboard \([excel, sep] )

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

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

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

to_dict \([orient, into] )

将DataFrame转换为词典。

to_excel \(EXCEL_编写器[, sheet_name, na_rep, ...] )

将对象写入Excel工作表。

to_feather \(路径, ** Kwargs)

将DataFrame写入二进制羽化格式。

to_gbq \(目的地_表[, project_id, ...] )

向Google BigQuery表编写一个DataFrame。

to_hdf \(路径_或_buf,键[, mode, complevel, ...] )

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

to_html \([buf, columns, col_space, header, ...] )

将DataFrame呈现为HTML表。

to_json \([path_or_buf, orient, date_format, ...] )

将对象转换为JSON字符串。

to_latex \([buf, columns, col_space, header, ...] )

将对象呈现到LaTeX表格、长表或嵌套表。

to_markdown \([buf, mode, index, storage_options] )

以支持降价的格式打印DataFrame。

to_numpy \([dtype, copy, na_value] )

将DataFrame转换为NumPy数组。

to_parquet \([path, engine, compression, ...] )

将DataFrame写入二进制拼图格式。

to_period \([freq, axis, copy] )

将DataFrame从DatetimeIndex转换为PerodIndex。

to_pickle \(路径[, compression, protocol, ...] )

Pickle(序列化)对象到文件。

to_records \([index, column_dtypes, index_dtypes] )

将DataFrame转换为NumPy记录数组。

to_sql \(名称,控制 [, schema, if_exists, ...] )

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

to_stata \(路径[, convert_dates, write_index, ...] )

将DataFrame对象导出为Stata DTA格式。

to_string \([buf, columns, col_space, header, ...] )

将DataFrame呈现为控制台友好的表格输出。

to_timestamp \([freq, how, axis, copy] )

强制转换为时间戳的DatetimeIndex,位于 起头 属于那个时期。

to_xarray \()

从Pandas对象返回一个XARRAY对象。

to_xml \([path_or_buffer, index, root_name, ...] )

将DataFrame呈现为XML文档。

transform \(函数[, axis] )

打电话 func 关于Self生成与Self具有相同轴形状的DataFrame。

transpose \(*参数[, copy] )

转置索引和列。

truediv \(其他[, axis, level, fill_value] )

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

truncate \([before, after, axis, copy] )

在某些索引值之前和之后截断Series或DataFrame。

tshift \([periods, freq, axis] )

(已弃用)移动时间索引,使用索引的频率(如果可用)。

tz_convert \(TZ[, axis, level, copy] )

将TZ感知轴转换为目标时区。

tz_localize \(TZ[, axis, level, copy, ...] )

将Series或DataFrame的Tz-naive索引本地化到目标时区。

unstack \([level, fill_value] )

透视一级(必须是分层的)索引标签。

update \(其他[, join, overwrite, ...] )

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

value_counts \([subset, normalize, sort, ...] )

返回包含DataFrame中唯一行计数的Series。

var \([axis, skipna, level, ddof, numeric_only] )

返回请求的轴上的无偏差。

where \(条件[, other, inplace, axis, level, ...] )

替换条件为FALSE的值。

xs \(密钥[, axis, level, drop_level] )

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