Pandas数据结构

简介: Pandas数据结构

Pandas有三种数据结构:Series、DataFrame和Panel。Series类似于数组;DataFrame类似于表格;Panel类似于Excel的多表单Sheet。

导入方式:

import pandas as pd


1.Series


Series是一种一维数组,包含索引和一个值序列,通过索引来访问数组中的数据。


1.1通过列表创建Series


i = ["a", "c", "d", "a"]
v = [2, 4, 5, 7]
t = pd.Series(v, index = i, name = "col")
print(t)
#-----------------------------------------
a    2
c    4
d    5
a    7


1.2通过字典创建Series


sdata = {"a" : 100, "b" : 200, "e" : 300}
obj3 = pd.Series(sdata)
print(obj3)
#------------------------------------
a    100
b    200
e    300


2.DataFrame


DataFrame是一个表格型的数据结构,既有行索引也有列索引,每列可以是不同类型的值。


2.1DataFrame索引


data = {
    'name':['张三', '李四', '王五', '小明'],
    'sex':['female', 'female', 'male', 'male'],
    'year':[2001, 2001, 2003, 2002],
    'city':['北京', '上海', '广州', '北京']
}
df = pd.DataFrame(data)
print(df)
#-------------------------------------------
    name   sex   year   city
0   张三  female  2001   北京
1   李四  female  2001   上海
2   王五    male  2003   广州
3   小明    male  2002   北京

DataFrame创建时指定索引


df3 = pd.DataFrame(data, columns = ['name', 'sex', 'year', 'city'], 
index = ['a', 'b', 'c', 'd'])
print(df3) 
print(df3.index)#显示索引
print(df3.columns)#显示列名
df.index.insert(1,'w')#插入索引
#---------------------------------
    name     sex  year city
a   张三  female  2001   北京
b   李四  female  2001   上海
c   王五    male  2003   广州
d   小明    male  2002   北京
Index(['a', 'b', 'c', 'd'], dtype='object')
Index(['name', 'sex', 'year', 'city'], dtype='object')
Index([0, 'w', 1, 2, 3], dtype='object')


2.2DataFrame常用属性


values index columns dtypes ndim shape
元素 索引 列名 类型 维度 形状
print(df)
print('信息表的所有值为:\n',df.values)
print('信息表的所有列为:\n',df.columns)
print('信息表的数据类型为:\n',df.dtypes)
print('信息表的元素个数为:\n ',df.size)
print('信息表的维度是\n ',df.ndim)
print('信息表的形状为:',df.shape)
#-------------------------------------
name     sex  year city
0   张三  female  2001   北京
1   李四  female  2001   上海
2   王五    male  2003   广州
3   小明    male  2002   北京
信息表的所有值为:
 [['张三' 'female' 2001 '北京']
 ['李四' 'female' 2001 '上海']
 ['王五' 'male' 2003 '广州']
 ['小明' 'male' 2002 '北京']]
信息表的所有列为:
 Index(['name', 'sex', 'year', 'city'], dtype='object')
信息表的数据类型为:
 name    object
sex     object
year     int64
city    object
dtype: object
信息表的元素个数为:
  16
信息表的维度是
  2
信息表的形状为: (4, 4)


3.pandas索引操作


3.1重建索引


索引对象是无法修改的,因此需要重建索引对索引重新排序。


obj = pd.Series([7.2,-4.3,4.5,3.6],index = ['b', 'a', 'd', 'c'])
print(obj)
obj.reindex(['a','b','c','d'])
#--------------------------------------------------------------
b    7.2
a   -4.3
d    4.5
c    3.6
dtype: float64
a   -4.3
b    7.2
c    3.6
d    4.5


3.2索引缺失值填充


对于顺序数据,使用参数method选项进行填充:


method='ffill'或'pad',表示前向值填充


method='bfill'或'backfill',表示后向值填充


缺失值的前向填充:


#前向填充
obj1 = pd.Series(['blue','red','black'],index = [0,2,4])
obj1.reindex(np.arange(6),method = 'ffill')
#-----------------------------------------
0     blue
1     blue
2      red
3      red
4    black
5    black

缺失值的后向填充:


obj2 = pd.Series(['blue','red','black'],index = [0,2,4])
obj2.reindex(np.arange(6),method = 'backfill')
#---------------------------------------------------------
0     blue
1      red
2      red
3    black
4    black
5      NaN


3.3更换索引


如果需要将列数据作为索引,则可以通过set_index方法实现;如果需要将索引还原,可以通过reset_index方法实现。


data = {
    'name':['张三', '李四', '王五', '小明'],
    'sex':['female', 'female', 'male', 'male'],
    'year':[2001, 2001, 2003, 2002],
    'city':['北京', '上海', '广州', '北京']
}
df = pd.DataFrame(data)
df5 = df.set_index('city')
print(df5)
df6 = df5.reset_index('city')
print(df6)
#----------------------------------------------
        name     sex  year
city                   
北京     张三  female  2001
上海     李四  female  2001
广州     王五    male  2003
北京     小明    male  2002
    city name     sex  year
0   北京   张三  female  2001
1   上海   李四  female  2001
2   广州   王五    male  2003
3   北京   小明    male  2002

目录
相关文章
|
16天前
|
存储 数据挖掘 数据处理
掌握Pandas核心数据结构:Series与DataFrame的四种创建方式
本文介绍了 Pandas 库中核心数据结构 Series 和 DataFrame 的四种创建方法,包括从列表、字典、标量和 NumPy 数组创建 Series,以及从字典、列表的列表、NumPy 数组和 Series 字典创建 DataFrame,通过示例详细说明了每种创建方式的具体应用。
114 67
|
2天前
|
存储 数据挖掘 索引
Pandas数据结构:Series与DataFrame
本文介绍了 Python 的 Pandas 库中两种主要数据结构 `Series` 和 ``DataFrame`,从基础概念入手,详细讲解了它们的创建、常见问题及解决方案,包括数据缺失处理、数据类型转换、重复数据删除、数据筛选、排序、聚合和合并等操作。同时,还提供了常见报错及解决方法,帮助读者更好地理解和使用 Pandas 进行数据分析。
30 10
|
1月前
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
50 2
Pandas 数据结构 - DataFrame
|
1月前
|
索引 Python
Pandas 数据结构 - Series
10月更文挑战第26天
38 2
Pandas 数据结构 - Series
|
2月前
|
数据采集 数据可视化 数据挖掘
Pandas数据结构
‌Pandas提供了两种主要的数据结构
41 3
|
5月前
|
存储 数据可视化 数据处理
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
`geopandas`是一个开源项目,它为Python提供了地理空间数据处理的能力。它基于`pandas`库,并扩展了其对地理空间数据(如点、线、多边形等)的支持。`GeoDataFrame`是`geopandas`中的核心数据结构,它类似于`pandas`的`DataFrame`,但包含了一个额外的地理列(通常是`geometry`列),用于存储地理空间数据。
|
6月前
|
存储 数据挖掘 数据处理
【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程
【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程
|
7月前
|
存储 数据挖掘 数据处理
Pandas数据结构详解:Series与DataFrame的奥秘
【4月更文挑战第16天】Pandas的Series和DataFrame是数据处理的核心工具。Series是一维标签化数组,支持各种数据类型,可通过索引便捷访问。DataFrame是二维表格型数据结构,适合存储和操作表格数据。两者提供丰富的统计方法和操作,如筛选、排序、分组聚合。它们之间可相互转换和交互,助力高效的数据分析。理解和掌握Series和DataFrame对于数据科学至关重要。
|
7月前
|
索引 Python
两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!
两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!
|
SQL 机器学习/深度学习 数据挖掘
pandas数据结构(Series和DataFrame)
无可非议,pandas是Python最强大的数据分析和探索工具之一,因金融数据分析工具而开发,支持类似于SQL语句的模型,可以对数据进行增删改查等操作,支持时间序列分析,也能够灵活的处理缺失的数据。它含有使数据分析工作变得更快更简单的高级数据结构和操作工具。pandas是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。这里所说的让pandas变得更快更简单的高级数据结构就是Series和DataFrame。要熟练使用pandas,首先得要熟悉它的这两个主要的数据结构:Series和DateFrame。
103 0