Python基础 | pandas.dataframe 专题使用指南

简介: pandas.dataframe 专题使用指南。

1.选取行名、列名、值

image

image

2.以标签(行、列的名字)为索引选择数据—— x.loc[行标签,列标签]

image

3.以位置(第几行、第几列)为索引选择数据—— x.iloc[行位置,列位置]

image

4.同时根据标签和位置选择数据——x.ix[行,列]

image

5.选择连续的多行多列——切片
起点索引:终点索引 这种用法叫做一个切片,指从起点索引到终点索引。看实际用法就懂了。
如果起点索引省略代表从头开始,终点索引省略代表直到最后,都省略就代表全部了。
切片在.loc、.iloc、.ix三种方法中都可以应用

image

由上例可见,当以位置为索引时,切片是不包括终点的,是左闭右开的。即第1列到第3列不是写作0:2而是0:3。

image

6.选择不连续的某几行或某几列

image

image

备注:当以标签名选取不连续的某几行的时候在这个例子中如df.loc['2016-02-02','2016-02-04',:]这样写会出错,,是时间格式的原因,这样写就可以了df.ix[[pd.Timestamp('2016-02-02'), pd.Timestamp('2016-02-04')]]

7.简便地获取行或列
直接用切片获取行,直接用标签名获取列。注意不要错乱。

image

image

8.如何返回一个dataframe的单列或单行
如上,此时返回的是一个series,而不是dataframe。有时单独只获取一行的时候也会返回一个series,如df.ix[0,:]。

image

若要返回dataframe,可用中括号把索引括上,如下。

image

9.按条件选取数据——df[逻辑条件]
逻辑条件支持&(与)、|(或)、~(非)等逻辑运算

image

image

这个方法有个常用情景,即按条件修改数据:

image

02.dataframe转置、排序

1.转置 df.T

image

2.按行名或列名排序——df.sort_index
df.sort_index(axis=0,ascending=True)
axis= 0 为按行名排序;1 为按列名排序
ascending= True 为升序; False 为降序

image

3.按值排序——df.sort_index
df.sort(by=, ascending=True)
by= 按哪一列的值排序,默认是按行标签排序
ascending= True 为升序; False 为降序

image

03.dataframe增删行或列

1.获得一个datframe数据类型的样例

image

2.增加一列或一行

image

3.删除行或列——df.drop
df.drop(labels,axis=0,inplace=Flase)
labels 行或列的标签名,写在第一个可省略。
axis= 0 删除行;1 删除列
inplace= False 生成新dataframe;True 不生成新的dataframe,替换原本dataframe。默认是False。
该操作默认返回的是另一个新的dataframe,以至于原来的没有变,如在下面第一个例子中删除的列,在第二个例子中还有。要替换原来的请调整inplace参数

image

04.链接多个dataframe

1.concat,concat([df1,df2,...],axis=0)
axis= 0 纵向;1 横向。
使用前需导入过pandas模块
使用时要注意连接的dataframe行列对齐
可以同时拼接多个dataframe
拼接是强制的,允许连接后存在同名的行或列,见纵向连接的第二个例子

image

2.横向连接

image

3.纵向连接

image

05.组建dataframe

1.组建方法——pd.DataFrame
pd.DataFrame(data=None, index=None, columns=None)
data= 数据
index= 索引,即行名、行表头
columns= 列名、列表头
使用前要执行前面的import pandas as pd

image

2.用字典型数据组建——pd.DataFrame
方法基本同上,因为字典型自带一个标签,所以就不用写列名了。

image

3.简便地获得聚宽数据中的时间索引
有时建立一个dataframe时,为了和平台数据保持一致,需要使用相同的时间行索引,但时间数据操作复杂,而且涉及到节假日、非交易日等问题,直接建立比较困难,这里介绍一种简单的方法,快速获得跟平台数据一致的时间索引。原理就是直接把平台数据的时间索引拿出来。例子如下:

image

06.dataframe的缺失值处理

1.去掉缺失值——df.dropna
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
axis= 0 按行检查缺失;1 按列检查缺失。不写默认为0
how= 'any' 有一个缺失值就算缺失;'all' 行或列(根据axis参数)全缺失才算缺失。不写默认为'any'
thresh= x,x为一个整数,含义为行或列(根据axis参数)中非缺失数值个数大于等于x则不算缺失,即小于x则算缺失,会被去除。
subset= 标签名。选择要对哪个列或行(与axis中的相反)进行检查缺失,没写的则不检查。即限制检查范围。
相对复杂,请看例子和与例子注释。

image

image

image

image

image

2.对缺失值进行填充——df.fillna
df.fillna(value=None,axis=None)
value= 替换缺失值的值。可以是单个值、字典、dataframe等,但不能是list。区别请看例子。

image

image

image

image

3.判断数据是否为缺失——df.isnull

为什么要这样用这个方法判断是否为缺失?
因为nan不等于nan(如下例),即用类似x == nan条件为真 这样的判断方法无法判断一个值x是否为nan。

image

07.常用统计函数

常用统计函数
describe 针对Series或个DataFrame列计算汇总统计
count 非na值的数量
min、max 计算最小值和最大值
idxmin、idxmax 计算能够获取到最大值和最小值得索引值
quantile 计算样本的分位数(0到1)
sum 值的总和
mean 值得平均数
median 值得算术中位数(50%分位数)
mad 根据平均值计算平均绝对离差
var 样本值的方差
std 样本值的标准差
skew 样本值得偏度(三阶矩)
kurt 样本值得峰度(四阶矩)
cumsum 样本值得累计和
cummin,cummax 样本值得累计最大值和累计最小值
cumprod 样本值得累计积
diff 计算一阶差分
pct_change 计算百分数变化
查看函数的详细信息

08.panel类型数据分解成dataframe

1.panel的取用方法
panel类型的的取用方法类似与dataframe,看下例子也就明白了。一般要做统计方面的工作,也是如下分解成dataframe进行操作,基本满足日常需求。了解更多panel的操作可参考:http://pandas.pydata.org/pandas-docs/stable/api.html#panel

2.panel类型数据分解成dataframe方法

image

image

09.研究内存取dataframe

1.把dataframe存成csv文件——df.to_csv()
用法如下,文件都是存到研究空间中的,如果不写路径是默认是存在根目录,如df.to_csv('df.csv')

image

image

2.读取被存成csv文件的dataframe——pd.read_csv()

image

原文发布时间为:2018-08-02
本文作者:TWist
本文来自云栖社区合作伙伴“ Python中文社区”,了解相关信息可以关注“ Python中文社区

相关文章
|
1月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
180 0
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
292 0
|
3月前
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
294 0
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
340 0
|
9月前
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
112 3
|
10月前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
264 2
|
12月前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
12月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
262 2
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
553 5

推荐镜像

更多