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
属性
访问行/列标签对的单个值。
此数据集的全局属性的字典。
返回表示DataFrame轴的列表。
DataFrame的列标签。
返回DataFrame中的数据类型。
指示Series/DataFrame是否为空。
获取与此Pandas对象关联的属性。
按整数位置访问行/列对的单个值。
纯粹基于整数位置的索引,用于按位置选择。
DataFrame的索引(行标签)。
通过标签或布尔数组访问一组行和列。
返回一个整数,表示轴/数组的维数。
返回表示DataFrame的维度的元组。
返回一个int,表示此对象中的元素数。
返回Styler对象。
返回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 。
将新列分配给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
\(偏移)根据日期偏移量选择时间序列数据的初始期间。
返回第一个非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] )当前元素和前一个元素之间的百分比变化。
应用预期为Series或DataFrame的可链接函数。
pivot
\([index, columns, values] )返回按给定索引/列值组织的整形DataFrame。
pivot_table
\([values, index, columns, ...] )将电子表格样式的数据透视表创建为DataFrame。
: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, ...] )按任一轴上的值排序。
: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] )从系列/数据帧返回横截面。