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

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

相关文章
|
1月前
|
Python
使用 Pandas 库时,如何处理数据的重复值?
在使用Pandas处理数据重复值时,需要根据具体的数据特点和分析需求,选择合适的方法来确保数据的准确性和唯一性。
151 8
|
1月前
|
数据采集 数据挖掘 数据处理
如何使用 Pandas 库进行数据清洗和预处理?
数据清洗和预处理是数据分析中至关重要的步骤,Pandas库提供了丰富的函数和方法来完成这些任务
75 8
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
75 0
|
23天前
|
存储 数据挖掘 数据处理
掌握Pandas核心数据结构:Series与DataFrame的四种创建方式
本文介绍了 Pandas 库中核心数据结构 Series 和 DataFrame 的四种创建方法,包括从列表、字典、标量和 NumPy 数组创建 Series,以及从字典、列表的列表、NumPy 数组和 Series 字典创建 DataFrame,通过示例详细说明了每种创建方式的具体应用。
137 67
|
9天前
|
存储 数据挖掘 索引
Pandas数据结构:Series与DataFrame
本文介绍了 Python 的 Pandas 库中两种主要数据结构 `Series` 和 ``DataFrame`,从基础概念入手,详细讲解了它们的创建、常见问题及解决方案,包括数据缺失处理、数据类型转换、重复数据删除、数据筛选、排序、聚合和合并等操作。同时,还提供了常见报错及解决方法,帮助读者更好地理解和使用 Pandas 进行数据分析。
41 10
|
23天前
|
存储 数据挖掘 索引
Pandas Series 和 DataFrame 常用属性详解及实例
Pandas 是 Python 数据分析的重要工具,其核心数据结构 Series 和 DataFrame 广泛应用。本文详细介绍了这两种结构的常用属性,如 `index`、`values`、`dtype` 等,并通过具体示例帮助读者更好地理解和使用这些属性,提升数据分析效率。
42 4
|
1月前
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
55 2
Pandas 数据结构 - DataFrame
|
1月前
|
机器学习/深度学习 数据挖掘 数据处理
Pandas库
Pandas库是Python中进行数据分析和处理的强大工具,通过其丰富的功能和简洁的API,可以高效地完成各种数据处理任务,为后续的数据分析和机器学习提供了有力的支持。
|
1月前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
1月前
|
Python
通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法
在金融分析领域,"死叉"指的是短期移动平均线(如MA5)下穿长期移动平均线(如MA10),而"金叉"则相反。本文介绍了一种利用Python编程语言,通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法。该方法首先计算两种移动平均线,接着确定它们的交叉点,最后检查并输出最近一次死叉及其后是否形成了金叉。此技术广泛应用于股市趋势分析。
53 2