Pandas库之DataFrame学习笔记

简介: Pandas库之DataFrame学习笔记

DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表

或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),DataFrame的单元格可以存放数值、字符串等,这和excel表很像。

同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位,具体方法在后面细说。

创建DataFrame:

首先我们需要导入pandas库与numpy库

1. import pandas as pd
2. import numpy as np

接下来我们就可以创建DataFrame了:

eg = pd.DataFrame(np.random.rand(3,2),columns=['left','Right'], index= ['one','two','three'], dtype=float)

首先我们传入我们需要构建的数据,这里是三行两列的一个数据,之后我们可以定义行的名称,列的名称,我们也可以不对其进行定义,默认值都是数字。我们得到的输出如下图所示:

 

我们也可以使用字典进行创建:

1. dic1={'name':['小明','小红','狗蛋','铁柱'],'age':[17,20,5,40],'gender':['男','女','女','男']}
2. eg = pd.DataFrame(dic1)

使用dtypes方法可以查看各列的数据类型,用法如下:

eg.dtypes

使用head可以查看几行的数据,默认的是前5行,不过也可以自己设置。

使用tail可以查看几行的数据,默认也是5行,参数可以自己设置。用法如下:

1. eg.head()
2. eg.tail()

使用index查看行名,columns查看列名,values可以查看DataFrame里的数据值。用法如下:

1. eg.index
2. eg.columns
3. eg.values

查看某一列所有的数据值:

eg['name'].values

使用loc或者iloc查看数据值,区别是loc是根据行名,iloc是根据数字索引(也就是行号)。

1. eg = pd.DataFrame(np.random.rand(3,2),columns=['left','Right'], index= ['one','two','three'], dtype=float)
2. print(eg.loc['one'])
3. print(eg.iloc[1])

按列进行索引查看数据还能直接使用列名,但这种方法对行索引不适用。

print(eg['left'])

使用shape查看行列数,参数为0表示查看行数,参数为1表示查看列数。

print(eg.shape[0])

转置

print(eg.T)

使用describe可以对数据根据列进行描述性统计:

print(eg.describe())

使用sum默认对每列求和,sum(1)为对每行求和

1. print(eg.sum())
2. print(eg.sum(1))

数乘运算使用apply,比如

print(eg.apply(lambda x:x*2))

乘方运算跟matlab类似,直接使用两个*,比如:

print(eg**2)

扩充列可以直接像字典一样,列名对应一个list,但是注意list的长度要跟index的长度一致

还可以使用insert,使用这个方法可以指定把列插入到第几列,其他的列顺延。

1. eg = pd.DataFrame(np.random.rand(3,2),columns=['left','Right'], index= ['one','two','three'], dtype=float)
2. eg['E'] = [999,999,999]
3. eg.insert(0,'F',[888,888,888])
4. print(eg)

使用join可以将两个DataFrame合并,但只根据行列名合并,并且以作用的那个DataFrame的为基准。如下所示,新的df7是以df2的行号index为基准的。

1. eg = pd.DataFrame(np.random.rand(3,2),columns=['left','Right'], index= ['one','two','three'], dtype=float)
2. df6=pd.DataFrame([10,10,10],index= ['one','two','three'],columns=list('G'))
3. print(eg.join(df6))

如果要合并多个Dataframe,可以用list把几个Dataframe装起来,然后使用concat转化为一个新的Dataframe。

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

相关文章
|
19天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
51 0
|
1月前
|
数据采集 数据处理 Python
探索数据科学前沿:Pandas与NumPy库的高级特性与应用实例
探索数据科学前沿:Pandas与NumPy库的高级特性与应用实例
33 0
|
2月前
|
SQL 索引 Python
Pandas中DataFrame合并的几种方法
Pandas中DataFrame合并的几种方法
188 0
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
79 0
|
18天前
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
36 2
Pandas 数据结构 - DataFrame
|
6天前
|
机器学习/深度学习 数据挖掘 数据处理
Pandas库
Pandas库是Python中进行数据分析和处理的强大工具,通过其丰富的功能和简洁的API,可以高效地完成各种数据处理任务,为后续的数据分析和机器学习提供了有力的支持。
|
19天前
|
Python
通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法
在金融分析领域,"死叉"指的是短期移动平均线(如MA5)下穿长期移动平均线(如MA10),而"金叉"则相反。本文介绍了一种利用Python编程语言,通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法。该方法首先计算两种移动平均线,接着确定它们的交叉点,最后检查并输出最近一次死叉及其后是否形成了金叉。此技术广泛应用于股市趋势分析。
34 2
|
22天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
46 5
|
20天前
|
Python
如何利用Pandas库找到最近一次死叉后未出现金叉的具体位置
在金融分析领域,"死叉"指短期移动平均线跌破长期移动平均线,而"金叉"则相反。本文介绍了一个Python示例,演示如何利用Pandas库找到最近一次死叉后未出现金叉的具体位置,包括计算移动平均线、确定交叉点、识别死叉和金叉,以及输出相关分析结果。此方法适用于各类包含收盘价数据的金融分析场景。
26 1
|
20天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2

热门文章

最新文章

下一篇
无影云桌面