python下的Pandas中DataFrame基本操作(一),基本函数整理

pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYSIS】中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰山一角。谈到pandas数据的行更新、表合并等操作,一般用到的方法有concat、join、merge。但这三种方法对于很多新手来说,都不太好分清使用的场合与用途。

构造函数

方法

描述

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

构造数据框

属性和数据

方法

描述

Axes

index: row labels;columns: column labels

DataFrame.as_matrix([columns])

转换为矩阵

DataFrame.dtypes

返回数据的类型

DataFrame.ftypes

Return the ftypes (indication of sparse/dense and dtype) in this object.

DataFrame.get_dtype_counts()

返回数据框数据类型的个数

DataFrame.get_ftype_counts()

Return the counts of ftypes in this object.

DataFrame.select_dtypes([include, exclude])

根据数据类型选取子数据框

DataFrame.values

Numpy的展示方式

DataFrame.axes

返回横纵坐标的标签名

DataFrame.ndim

返回数据框的纬度

DataFrame.size

返回数据框元素的个数

DataFrame.shape

返回数据框的形状

DataFrame.memory_usage([index, deep])

Memory usage of DataFrame columns.

类型转换

方法

描述

DataFrame.astype(dtype[, copy, errors])

转换数据类型

DataFrame.copy([deep])

复制数据框

DataFrame.isnull()

以布尔的方式返回空值

DataFrame.notnull()

以布尔的方式返回非空值

索引和迭代

方法

描述

DataFrame.head([n])

返回前n行数据

DataFrame.at

快速标签常量访问器

DataFrame.iat

快速整型常量访问器

DataFrame.loc

标签定位

DataFrame.iloc

整型定位

DataFrame.insert(loc, column, value[, …])

在特殊地点插入行

DataFrame.iter()

Iterate over infor axis

DataFrame.iteritems()

返回列名和序列的迭代器

DataFrame.iterrows()

返回索引和序列的迭代器

DataFrame.itertuples([index, name])

Iterate over DataFrame rows as namedtuples, with index value as first element of the tuple.

DataFrame.lookup(row_labels, col_labels)

Label-based “fancy indexing” function for DataFrame.

DataFrame.pop(item)

返回删除的项目

DataFrame.tail([n])

返回最后n行

DataFrame.xs(key[, axis, level, drop_level])

Returns a cross-section (row(s) or column(s)) from the Series/DataFrame.

DataFrame.isin(values)

是否包含数据框中的元素

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

条件筛选

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

Return an object of same shape as self and whose corresponding entries are from self where cond is False and otherwise are from other.

DataFrame.query(expr[, inplace])

Query the columns of a frame with a boolean expression.

二元运算

方法

描述

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

加法,元素指向

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

减法,元素指向

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

乘法,元素指向

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

小数除法,元素指向

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

真除法,元素指向

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

向下取整除法,元素指向

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

模运算,元素指向

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

幂运算,元素指向

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

右侧加法,元素指向

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

右侧减法,元素指向

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

右侧乘法,元素指向

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

右侧小数除法,元素指向

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

右侧真除法,元素指向

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

右侧向下取整除法,元素指向

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

右侧模运算,元素指向

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

右侧幂运算,元素指向

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

类似Array.lt

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

类似Array.gt

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

类似Array.le

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

类似Array.ge

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

类似Array.ne

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

类似Array.eq

DataFrame.combine(other, func[, fill_value, …])

Add two DataFrame objects and do not propagate NaN values, so if for a

DataFrame.combine_first(other)

Combine two DataFrame objects and default to non-null values in frame calling the method.

函数应用&分组&窗口

方法

描述

DataFrame.apply(func[, axis, broadcast, …])

应用函数

DataFrame.applymap(func)

Apply a function to a DataFrame that is intended to operate elementwise, i.e.

DataFrame.aggregate(func[, axis])

Aggregate using callable, string, dict, or list of string/callables

DataFrame.transform(func, *args, **kwargs)

Call function producing a like-indexed NDFrame

DataFrame.groupby([by, axis, level, …])

分组

DataFrame.rolling(window[, min_periods, …])

滚动窗口

DataFrame.expanding([min_periods, freq, …])

拓展窗口

DataFrame.ewm([com, span, halflife, alpha, …])

指数权重窗口

描述统计学

方法

描述

DataFrame.abs()

返回绝对值

DataFrame.all([axis, bool_only, skipna, level])

Return whether all elements are True over requested axis

DataFrame.any([axis, bool_only, skipna, level])

Return whether any element is True over requested axis

DataFrame.clip([lower, upper, axis])

Trim values at input threshold(s).

DataFrame.clip_lower(threshold[, axis])

Return copy of the input with values below given value(s) truncated.

DataFrame.clip_upper(threshold[, axis])

Return copy of input with values above given value(s) truncated.

DataFrame.corr([method, min_periods])

返回本数据框成对列的相关性系数

DataFrame.corrwith(other[, axis, drop])

返回不同数据框的相关性

DataFrame.count([axis, level, numeric_only])

返回非空元素的个数

DataFrame.cov([min_periods])

计算协方差

DataFrame.cummax([axis, skipna])

Return cumulative max over requested axis.

DataFrame.cummin([axis, skipna])

Return cumulative minimum over requested axis.

DataFrame.cumprod([axis, skipna])

返回累积

DataFrame.cumsum([axis, skipna])

返回累和

DataFrame.describe([percentiles, include, …])

整体描述数据框

DataFrame.diff([periods, axis])

1st discrete difference of object

DataFrame.eval(expr[, inplace])

Evaluate an expression in the context of the calling DataFrame instance.

DataFrame.kurt([axis, skipna, level, …])

返回无偏峰度Fisher’s (kurtosis of normal == 0.0).

DataFrame.mad([axis, skipna, level])

返回偏差

DataFrame.max([axis, skipna, level, …])

返回最大值

DataFrame.mean([axis, skipna, level, …])

返回均值

DataFrame.median([axis, skipna, level, …])

返回中位数

DataFrame.min([axis, skipna, level, …])

返回最小值

DataFrame.mode([axis, numeric_only])

返回众数

DataFrame.pct_change([periods, fill_method, …])

返回百分比变化

DataFrame.prod([axis, skipna, level, …])

返回连乘积

DataFrame.quantile([q, axis, numeric_only, …])

返回分位数

DataFrame.rank([axis, method, numeric_only, …])

返回数字的排序

DataFrame.round([decimals])

Round a DataFrame to a variable number of decimal places.

DataFrame.sem([axis, skipna, level, ddof, …])

返回无偏标准误

DataFrame.skew([axis, skipna, level, …])

返回无偏偏度

DataFrame.sum([axis, skipna, level, …])

求和

DataFrame.std([axis, skipna, level, ddof, …])

返回标准误差

DataFrame.var([axis, skipna, level, ddof, …])

返回无偏误差

从新索引&选取&标签操作

方法

描述

DataFrame.add_prefix(prefix)

添加前缀

DataFrame.add_suffix(suffix)

添加后缀

DataFrame.align(other[, join, axis, level, …])

Align two object on their axes with the

DataFrame.drop(labels[, axis, level, …])

返回删除的列

DataFrame.drop_duplicates([subset, keep, …])

Return DataFrame with duplicate rows removed, optionally only

DataFrame.duplicated([subset, keep])

Return boolean Series denoting duplicate rows, optionally only

DataFrame.equals(other)

两个数据框是否相同

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

过滤特定的子数据框

DataFrame.first(offset)

Convenience method for subsetting initial periods of time series data based on a date offset.

DataFrame.head([n])

返回前n行

DataFrame.idxmax([axis, skipna])

Return index of first occurrence of maximum over requested axis.

DataFrame.idxmin([axis, skipna])

Return index of first occurrence of minimum over requested axis.

DataFrame.last(offset)

Convenience method for subsetting final periods of time series data based on a date offset.

DataFrame.reindex([index, columns])

Conform DataFrame to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.

DataFrame.reindex_axis(labels[, axis, …])

Conform input object to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.

DataFrame.reindex_like(other[, method, …])

Return an object with matching indices to myself.

DataFrame.rename([index, columns])

Alter axes input function or functions.

DataFrame.rename_axis(mapper[, axis, copy, …])

Alter index and / or columns using input function or functions.

DataFrame.reset_index([level, drop, …])

For DataFrame with multi-level index, return new DataFrame with labeling information in the columns under the index names, defaulting to ‘level_0’, ‘level_1’, etc.

DataFrame.sample([n, frac, replace, …])

返回随机抽样

DataFrame.select(crit[, axis])

Return data corresponding to axis labels matching criteria

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

Set the DataFrame index (row labels) using one or more existing columns.

DataFrame.tail([n])

返回最后几行

DataFrame.take(indices[, axis, convert, is_copy])

Analogous to ndarray.take

DataFrame.truncate([before, after, axis, copy])

Truncates a sorted NDFrame before and/or after some particular index value.

处理缺失值

方法

描述

DataFrame.dropna([axis, how, thresh, …])

Return object with labels on given axis omitted where alternately any

DataFrame.fillna([value, method, axis, …])

填充空值

DataFrame.replace([to_replace, value, …])

Replace values given in ‘to_replace’ with ‘value’.

从新定型&排序&转变形态

方法

描述

DataFrame.pivot([index, columns, values])

Reshape data (produce a “pivot” table) based on column values.

DataFrame.reorder_levels(order[, axis])

Rearrange index levels using input order.

DataFrame.sort_values(by[, axis, ascending, …])

Sort by the values along either axis

DataFrame.sort_index([axis, level, …])

Sort object by labels (along an axis)

DataFrame.nlargest(n, columns[, keep])

Get the rows of a DataFrame sorted by the n largest values of columns.

DataFrame.nsmallest(n, columns[, keep])

Get the rows of a DataFrame sorted by the n smallest values of columns.

DataFrame.swaplevel([i, j, axis])

Swap levels i and j in a MultiIndex on a particular axis

DataFrame.stack([level, dropna])

Pivot a level of the (possibly hierarchical) column labels, returning a DataFrame (or Series in the case of an object with a single level of column labels) having a hierarchical index with a new inner-most level of row labels.

DataFrame.unstack([level, fill_value])

Pivot a level of the (necessarily hierarchical) index labels, returning a DataFrame having a new level of column labels whose inner-most level consists of the pivoted index labels.

DataFrame.melt([id_vars, value_vars, …])

“Unpivots” a DataFrame from wide format to long format, optionally

DataFrame.T

Transpose index and columns

DataFrame.to_panel()

Transform long (stacked) format (DataFrame) into wide (3D, Panel) format.

DataFrame.to_xarray()

Return an xarray object from the pandas object.

DataFrame.transpose(*args, **kwargs)

Transpose index and columns

Combining& joining&merging

方法

描述

DataFrame.append(other[, ignore_index, …])

追加数据

DataFrame.assign(**kwargs)

Assign new columns to a DataFrame, returning a new object (a copy) with all the original columns in addition to the new ones.

DataFrame.join(other[, on, how, lsuffix, …])

Join columns with other DataFrame either on index or on a key column.

DataFrame.merge(right[, how, on, left_on, …])

Merge DataFrame objects by performing a database-style join operation by columns or indexes.

DataFrame.update(other[, join, overwrite, …])

Modify DataFrame in place using non-NA values from passed DataFrame.

时间序列

方法

描述

DataFrame.asfreq(freq[, method, how, …])

将时间序列转换为特定的频次

DataFrame.asof(where[, subset])

The last row without any NaN is taken (or the last row without

DataFrame.shift([periods, freq, axis])

Shift index by desired number of periods with an optional time freq

DataFrame.first_valid_index()

Return label for first non-NA/null value

DataFrame.last_valid_index()

Return label for last non-NA/null value

DataFrame.resample(rule[, how, axis, …])

Convenience method for frequency conversion and resampling of time series.

DataFrame.to_period([freq, axis, copy])

Convert DataFrame from DatetimeIndex to PeriodIndex with desired

DataFrame.to_timestamp([freq, how, axis, copy])

Cast to DatetimeIndex of timestamps, at beginning of period

DataFrame.tz_convert(tz[, axis, level, copy])

Convert tz-aware axis to target time zone.

DataFrame.tz_localize(tz[, axis, level, …])

Localize tz-naive TimeSeries to target time zone.

作图

方法

描述

DataFrame.plot([x, y, kind, ax, ….])

DataFrame plotting accessor and method

DataFrame.plot.area([x, y])

面积图Area plot

DataFrame.plot.bar([x, y])

垂直条形图Vertical bar plot

DataFrame.plot.barh([x, y])

水平条形图Horizontal bar plot

DataFrame.plot.box([by])

箱图Boxplot

DataFrame.plot.density(**kwds)

核密度Kernel Density Estimate plot

DataFrame.plot.hexbin(x, y[, C, …])

Hexbin plot

DataFrame.plot.hist([by, bins])

直方图Histogram

DataFrame.plot.kde(**kwds)

核密度Kernel Density Estimate plot

DataFrame.plot.line([x, y])

线图Line plot

DataFrame.plot.pie([y])

饼图Pie chart

DataFrame.plot.scatter(x, y[, s, c])

散点图Scatter plot

DataFrame.boxplot([column, by, ax, …])

Make a box plot from DataFrame column optionally grouped by some columns or

DataFrame.hist(data[, column, by, grid, …])

Draw histogram of the DataFrame’s series using matplotlib / pylab.

转换为其他格式

方法

描述

DataFrame.from_csv(path[, header, sep, …])

Read CSV file (DEPRECATED, please use pandas.read_csv() instead).

DataFrame.from_dict(data[, orient, dtype])

Construct DataFrame from dict of array-like or dicts

DataFrame.from_items(items[, columns, orient])

Convert (key, value) pairs to DataFrame.

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

Convert structured or record ndarray to DataFrame

DataFrame.info([verbose, buf, max_cols, …])

Concise summary of a DataFrame.

DataFrame.to_pickle(path[, compression, …])

Pickle (serialize) object to input file path.

DataFrame.to_csv([path_or_buf, sep, na_rep, …])

Write DataFrame to a comma-separated values (csv) file

DataFrame.to_hdf(path_or_buf, key, **kwargs)

Write the contained data to an HDF5 file using HDFStore.

DataFrame.to_sql(name, con[, flavor, …])

Write records stored in a DataFrame to a SQL database.

DataFrame.to_dict([orient, into])

Convert DataFrame to dictionary.

DataFrame.to_excel(excel_writer[, …])

Write DataFrame to an excel sheet

DataFrame.to_json([path_or_buf, orient, …])

Convert the object to a JSON string.

DataFrame.to_html([buf, columns, col_space, …])

Render a DataFrame as an HTML table.

DataFrame.to_feather(fname)

write out the binary feather-format for DataFrames

DataFrame.to_latex([buf, columns, …])

Render an object to a tabular environment table.

DataFrame.to_stata(fname[, convert_dates, …])

A class for writing Stata binary dta files from array-like objects

DataFrame.to_msgpack([path_or_buf, encoding])

msgpack (serialize) object to input file path

DataFrame.to_gbq(destination_table, project_id)

Write a DataFrame to a Google BigQuery table.

DataFrame.to_records([index, convert_datetime64])

Convert DataFrame to record array.

DataFrame.to_sparse([fill_value, kind])

Convert to SparseDataFrame

DataFrame.to_dense()

Return dense representation of NDFrame (as opposed to sparse)

DataFrame.to_string([buf, columns, …])

Render a DataFrame to a console-friendly tabular output.

DataFrame.to_clipboard([excel, sep])

Attempt to write text representation of object to the system clipboard This can be pasted into Excel, for example.

参考文献:

http://pandas.pydata.org/pandas-docs/stable/api.html#dataframe

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程直播室

读书笔记:《算法图解》第三章 递归

1405
来自专栏强仔仔

利用JavaScript中的正则表达式实现常用输入框的验证

本章主要讲:通过JavaScript中正则表达式的 应用实现(http、电话号码、邮箱、数字、字母及其数字、时间日期、身份证)等的验证。 下面看例子demo的实...

1876
来自专栏计算机视觉与深度学习基础

Leetcode 题目列表(难度、出现频率、知识点)

不全,但好像没看到有更好的版本,刷前132题暂时凑合着用吧! 转载自:LeetCode Question Difficulty Distribution ?...

3336
来自专栏HansBug's Lab

3098: Hash Killer II

3098: Hash Killer II Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special Judge S...

2736
来自专栏闵开慧

曾经做过的40道程序设计课后习题总结(二)

曾经做过的40道程序设计课后习题总结(二) 课后习题目录 1 斐波那契数列 2 判断素数 3 水仙花数 4 分解质因数 5 杨辉三角 6 学习成绩查询 7 求最...

3447
来自专栏HansBug's Lab

1637: [Usaco2007 Mar]Balanced Lineup

1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec  Memory Limit: 64 MB Subm...

2586
来自专栏贾老师の博客

【笔记】ejoy2d —— shader

1653
来自专栏Code_iOS

OpenGL ES 2.0 (iOS)[03]:熟练图元绘制,玩转二维图形

文章的大前提是,你得有《OpenGL ES 2.0 (iOS): 一步从一个小三角开始》的基础知识。

1151
来自专栏小樱的经验随笔

2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】

Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131...

2725
来自专栏潇涧技术专栏

Fab and Dialog Morphing Animation

Fab and Dialog Morphing Animation on Android.

582

扫码关注云+社区