Pandas进阶大神!从0到100你只差这篇文章!(三)

简介: Pandas进阶大神!从0到100你只差这篇文章!(三)

pandas常用参数


数值显示格式:当数值很大的时候pandas默认会使用科学计数法


# float数据类型以{:.4f}格式显示,即显示完整数据且保留后四位pd.options.display.float_format = '{:.4f}'.format


pandas常用函数


1. 统计


# descibe方法会计算每列数据对象是数值的count, mean, std, min, max, 以及一定比率的值df.describe()     
Open    Close   High    Low Volumecount   641.0000    641.0000    641.0000    641.0000    641.0000mean    10.7862 9.7927  9.8942  9.6863  833968.6162std 1.5962  1.6021  1.6620  1.5424  607731.6934min 8.6580  7.6100  7.7770  7.4990  153901.000025% 9.7080  8.7180  8.7760  8.6500  418387.000050% 10.0770 9.0960  9.1450  8.9990  627656.000075% 11.8550 10.8350 10.9920 10.7270 1039297.0000max 15.9090 14.8600 14.9980 14.4470 4262825.0000
# 单独统计Open列的平均值df.Open.mean()10.786248049922001
# 查看居于95%的值, 默认线性拟合df.Open.quantile(0.95)14.187
# 查看Open列每个值出现的次数df.Open.value_counts().head()
9.8050    129.8630    109.8440    109.8730    109.8830     8Name: Open, dtype: int64


2. 缺失值处理


删除或者填充缺失值。


# 删除含有NaN的任意行df.dropna(how='any')
# 删除含有NaN的任意列df.dropna(how='any', axis=1)
# 将NaN的值改为5df.fillna(value=5)


3. 排序


按行或者列排序, 默认也不修改源数据。


# 按列排序df.sort_index(axis=1).head()
    Close   Code    Date    High    Low Open    Volumedate2015-12-24  9.8230  000001  2015-12-24  9.9980  9.7440  10.9190 640229.00002015-12-25  1.0000  000001  2015-12-25  1.0000  9.8150  10.8550 399845.00002015-12-28  1.0000  000001  2015-12-28  1.0000  9.5370  10.8950 822408.00002015-12-29  9.6240  000001  2015-12-29  9.6320  9.5290  10.5450 619802.00002015-12-30  9.6320  000001  2015-12-30  9.6400  9.5130  10.6240 532667.0000
# 按行排序,不递增df.sort_index(ascending=False).head()
        Date    Open    Close   High    Low Volume  Code   date2018-08-08  2018-08-08  10.1600 9.1100  9.1600  9.0900  153901.0000 0000012018-08-07  2018-08-07  9.9600  9.1700  9.1700  8.8800  690423.0000 0000012018-08-06  2018-08-06  9.9400  8.9400  9.1100  8.8900  554010.0000 0000012018-08-03  2018-08-03  9.9300  8.9100  9.1000  8.9100  476546.0000 0000012018-08-02  2018-08-02  10.1300 8.9400  9.1500  8.8800  931401.0000 000001


安装某一列的值排序


# 按照Open列的值从小到大排序df.sort_values(by="Open")        Date    Open    Close   High    Low Volume  Codedate   2016-03-01  2016-03-01  8.6580  7.7220  7.7770  7.6260  377910.0000 0000012016-02-15  2016-02-15  8.6900  7.7930  7.8410  7.6820  278499.0000 0000012016-01-29  2016-01-29  8.7540  7.9610  8.0240  7.7140  544435.0000 0000012016-03-02  2016-03-02  8.7620  8.0400  8.0640  7.7380  676613.0000 0000012016-02-26  2016-02-26  8.7770  7.7930  7.8250  7.6900  392154.0000 000001


4. 合并


concat, 按照行方向或者列方向合并。


# 分别取0到2行,2到4行,4到9行组成一个列表,通过concat方法按照axis=0,行方向合并, axis参数不指定,默认为0split_rows = [df.iloc[0:2,:],df.iloc[2:4,:], df.iloc[4:9]]pd.concat(split_rows)
    Date    Open    Close   High    Low Volume  Codedate2015-12-24  2015-12-24  10.9190 9.8230  9.9980  9.7440  640229.0000 0000012015-12-25  2015-12-25  10.8550 1.0000  1.0000  9.8150  399845.0000 0000012015-12-28  2015-12-28  10.8950 1.0000  1.0000  9.5370  822408.0000 0000012015-12-29  2015-12-29  10.5450 9.6240  9.6320  9.5290  619802.0000 0000012015-12-30  2015-12-30  10.6240 9.6320  9.6400  9.5130  532667.0000 0000012015-12-31  2015-12-31  10.6320 9.5450  9.6560  9.5370  491258.0000 0000012016-01-04  2016-01-04  10.5530 8.9950  9.5770  8.9400  563497.0000 0000012016-01-05  2016-01-05  9.9720  9.0750  9.2100  8.8760  663269.0000 0000012016-01-06  2016-01-06  10.0910 9.1790  9.2020  9.0670  515706.0000 000001
# 分别取2到3列,3到5列,5列及以后列数组成一个列表,通过concat方法按照axis=1,列方向合并split_columns = [df.iloc[:,1:2], df.iloc[:,2:4], df.iloc[:,4:]]pd.concat(split_columns, axis=1).head()
    Open    Close   High    Low Volume     Code    date2015-12-24  10.9190 9.8230  9.9980  9.7440  640229.0000 0000012015-12-25  10.8550 1.0000  1.0000  9.8150  399845.0000 0000012015-12-28  10.8950 1.0000  1.0000  9.5370  822408.0000 0000012015-12-29  10.5450 9.6240  9.6320  9.5290  619802.0000 0000012015-12-30  10.6240 9.6320  9.6400  9.5130  532667.0000 000001


追加行, 相应的还有insert, 插入插入到指定位置


# 将第一行追加到最后一行df.append(df.iloc[0,:], ignore_index=True).tail()
Date    Open    Close   High    Low Volume  Code637 2018-08-03  9.9300  8.9100  9.1000  8.9100  476546.0000 000001638 2018-08-06  9.9400  8.9400  9.1100  8.8900  554010.0000 000001639 2018-08-07  9.9600  9.1700  9.1700  8.8800  690423.0000 000001640 2018-08-08  10.1600 9.1100  9.1600  9.0900  153901.0000 000001641 2015-12-24  10.9190 9.8230  9.9980  9.7440  640229.0000 000001

5. 对象复制


由于dataframe是引用对象,所以需要显示调用copy方法用以复制整个dataframe对象。

相关文章
|
7月前
|
数据可视化 数据挖掘 数据处理
进阶 pandas DataFrame:挖掘高级数据处理技巧
【5月更文挑战第19天】本文介绍了Pandas DataFrame的高级使用技巧,包括数据重塑(如`pivot`和`melt`)、字符串处理(如提取和替换)、日期时间处理(如解析和时间序列操作)、合并与连接(如`merge`和`concat`),以及使用`apply()`应用自定义函数。这些技巧能提升数据处理效率,适用于复杂数据分析任务。推荐进一步学习和探索Pandas的高级功能。
|
5月前
|
数据处理 Python
数据科学进阶之路:Pandas与NumPy高级操作详解与实战演练
【7月更文挑战第13天】探索数据科学:Pandas与NumPy提升效率的高级技巧** - Pandas的`query`, `loc`和`groupby`用于复杂筛选和分组聚合,例如筛选2023年销售额超1000的记录并按类别计总销售额。 - NumPy的广播和向量化运算加速大规模数据处理,如快速计算两个大数组的元素级乘积。 - Pandas DataFrame基于NumPy,二者协同加速数据处理,如将DataFrame列转换为NumPy数组进行标准化再回写,避免链式赋值。 掌握这些高级操作,实现数据科学项目的效率飞跃。
63 0
|
SQL 数据可视化 数据挖掘
Python 数据分析(四):Pandas 进阶
Python 数据分析(四):Pandas 进阶
90 0
Python 数据分析(四):Pandas 进阶
|
7月前
|
Python
Pandas进阶--map映射,分组聚合和透视pivot_table详解
Pandas进阶--map映射,分组聚合和透视pivot_table详解
147 0
|
7月前
|
机器学习/深度学习 数据可视化 数据处理
Pandas进阶学习:探索更多高级特性与技巧
【4月更文挑战第16天】本文深入探讨Pandas的进阶特性,包括向量化操作、apply方法、数据重塑、布尔索引、多重索引、性能优化和库集成。通过学习,可以提升数据处理效率,如使用布尔条件筛选、CategoricalDtype优化性能、分块处理大数据及与NumPy、Matplotlib、Seaborn和scikit-learn集成。掌握这些技巧能助你更好地挖掘数据价值。
|
数据挖掘 数据处理 Python
Pandas进阶:处理缺失数据和数据聚合
在本篇文章中,我们将深入探讨Pandas库中两个重要的数据处理功能:处理缺失数据和数据聚合。
|
数据挖掘 Java 索引
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
288 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十七)
|
存储 SQL 数据挖掘
【python进阶系列之pandas】数据处理的大佬 pandas之数据结构
这里是三岁,速学了pandas,怕自己不会用整理了一下资料,有问题的地方或者不对的希望大家多多指出,批评指正!!! 由于pandas的内容过多我们就把经常使用的进行解析,其他的我们后续逐步添加
344 0
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十三)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
138 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十三)
|
数据挖掘 索引 Python
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十四)
你好,感谢你能点进来本篇博客,请不要着急退出,相信我,如果你有一定的 Python 基础,想要学习 Python数据分析的三大库:numpy,pandas,matplotlib;这篇文章不会让你失望,本篇博客是 【AIoT阶段一(下)】 的内容:Python数据分析,
148 0
数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)—Pandas—pandas进阶(十四)