Pandas基本操作:Series和DataFrame(Python)

简介: Pandas基本操作:Series和DataFrame(Python)

1. Pandas介绍

Pandas是一个基于NumPy开发的工具库,用于数据处理和分析:如合并、分组、筛选和重塑数据等。Pandas的灵活性和高效性使其成为数据科学家、分析师和数据工程师的重要工具之一。


Series和DataFrame是Pandas的两种基本的数据类型,Series是一维的数据类型(可以理解为数组),而DataFrame是二维数据类型(可以理解为矩阵)。


2. Series基本功能介绍

首先先建立一个Series:

import pandas
t = pandas.Series([15,2,3,4,5],index=list("abcde"))
print(t)

输出的一维数据Series为:

a    15
b     2
c     3
d     4
e     5
dtype: int64

其中a,b,c,d,e为数据索引标签;15,2,3,4,5为数据。

2.1 索引数据

例如索引“c”指向的数据“3”

print(t["c"])

输出为:

c    3
dtype: int64

这个有点类似dict字典型数据

2.2 数据切片
print(t[[1,4]])

输出为:

b    2
e    5
dtype: int64

也可以输出一段数据:

print(t[1:4])

输出为:

b    2
c    3
d    4
dtype: int64

注意:与上面不同,这里只能输出到d 4

2.3 输出大于x的值
print(t[t>2])

输出为:

a    15
c     3
d     4
e     5
dtype: int64

输出小于x的值方法同理。

2.4 输出Series的数据
print(t.values)
print(type(t))
print(type(t.values))

输出为:

[15  2  3  4  5]
<class 'pandas.core.series.Series'>
<class 'numpy.ndarray'>

可见,这里把Series的值输出后,数据类型也变成了NumPy的ndarray。

3. DataFrame基本功能介绍

首先还是建立一个DataFrame作为示例:

import pandas
t = pandas.DataFrame([[1,2,3,4,5],
                      [11,12,13,14,15],
                      [21,22,23,24,25]],
                     index=list("ABC"),columns=list("abcde"))
print(t)

输出为:

a   b   c   d   e
A   1   2   3   4   5
B  11  12  13  14  15
C  21  22  23  24  25

可见,DataFrame就是一个有行列标注的数据列表。

3.1 输出行列的索引标签
print(t.index)
print(t.columns)

输出为:

Index(['A', 'B', 'C'], dtype='object')
Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
3.2 输出DataFrame的数据
print(t.values)
print(type(t.values))

输出为:

[[ 1  2  3  4  5]
 [11 12 13 14 15]
 [21 22 23 24 25]]
<class 'numpy.ndarray'>

同样,数据类型也会被转换为ndarray。

3.3 输出某列的均值 .mean()
print(t["d"].mean())

输出为:

14.0

但是这个不能输出某行的均值。

3.4 输出DataFrame的形状(行列数)
print(t.shape)

输出为:

(3, 5)
3.5 输出数据类型
print(t.dtypes)

输出为:

a    int64
b    int64
c    int64
d    int64
e    int64
dtype: object
3.6 输出维度数
print(t.ndim)

输出为:

2

说明该DataFrame是一个二维数据表。

3.7 输出相关信息
print(t.info())

输出为:

<class 'pandas.core.frame.DataFrame'>
Index: 3 entries, A to C
Data columns (total 5 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   a       3 non-null      int64
 1   b       3 non-null      int64
 2   c       3 non-null      int64
 3   d       3 non-null      int64
 4   e       3 non-null      int64
dtypes: int64(5)
memory usage: 144.0+ bytes
None

输出该DataFrame相关信息。

3.8 输出相关数据统计
print(t.describe())

输出为:

a     b     c     d     e
count   3.0   3.0   3.0   3.0   3.0
mean   11.0  12.0  13.0  14.0  15.0
std    10.0  10.0  10.0  10.0  10.0
min     1.0   2.0   3.0   4.0   5.0
25%     6.0   7.0   8.0   9.0  10.0
50%    11.0  12.0  13.0  14.0  15.0
75%    16.0  17.0  18.0  19.0  20.0
max    21.0  22.0  23.0  24.0  25.0

输出均值、样本标准差、极值等数据。

3.9 按某列排序
print(t.sort_values(by = "e", ascending= False))

输出为:

a   b   c   d   e
C  21  22  23  24  25
B  11  12  13  14  15
A   1   2   3   4   5

按e列排序,ascending = False 意味着是降序排序。

3.10 输出某行或某列

输出前B行

print(t[1:2])

输出为:

a   b   c   d   e
B  11  12  13  14  15

输出b列

print(t["b"])

输出为:

A     2
B    12
C    22
Name: b, dtype: int64
3.11 输出数据类型
print(type(t["b"]))

输出为:

<class 'pandas.core.series.Series'>

说明b列数据类型为Series。

3.12 切片(重点)

用loc可以进行各种切片(块)。这里注意loc后面是[]

某行的切片

print(t.loc["B", :])

输出为:

a    11
b    12
c    13
d    14
e    15
Name: B, dtype: int64

注意和上面3.10的区别

切块

print(t.loc[["A","B"],["a","b","c"]])

输出为:

a   b   c
A   1   2   3
B  11  12  13

还可以用iloc切片,直接用数字索引:

print(t.iloc[1:3,[2,1]])

输出为:

c   b
B  13  12
C  23  22

带条件切片(与条件):

print(t[(t["c"]>5)&(t["d"]<20)])

输出为:

a   b   c   d   e
B  11  12  13  14  15

带条件切片(或条件):

print(t[(t["a"]>10)|(t["d"]>15)])

输出为:

a   b   c   d   e
B  11  12  13  14  15
C  21  22  23  24  25
3.13 筛选大于x的值
print(t[t>10])

输出为:

a     b     c     d     e
A   NaN   NaN   NaN   NaN   NaN
B  11.0  12.0  13.0  14.0  15.0
C  21.0  22.0  23.0  24.0  25.0

不满足条件的值会被设定为NaN,这些NaN可以被删除:

a = t[t>10]
print(a.dropna(how="all"))

输出为:

a     b     c     d     e
B  11.0  12.0  13.0  14.0  15.0
C  21.0  22.0  23.0  24.0  25.0

或者用别的值替换NaN:

a = t[t>10]
print(a.fillna(1111))

输出为:

a       b       c       d       e
A  1111.0  1111.0  1111.0  1111.0  1111.0
B    11.0    12.0    13.0    14.0    15.0
C    21.0    22.0    23.0    24.0    25.0

以上,Pandas中的Series和DataFrame的基本操作介绍完毕。


相关文章
|
1月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
216 0
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
343 0
|
3月前
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
322 0
|
7月前
|
Python
解决Python报错:DataFrame对象没有concat属性的多种方法(解决方案汇总)
总的来说,解决“DataFrame对象没有concat属性”的错误的关键是理解concat函数应该如何正确使用,以及Pandas库提供了哪些其他的数据连接方法。希望这些方法能帮助你解决问题。记住,编程就像是解谜游戏,每一个错误都是一个谜题,解决它们需要耐心和细心。
346 15
|
11月前
|
存储 数据挖掘 数据处理
掌握Pandas核心数据结构:Series与DataFrame的四种创建方式
本文介绍了 Pandas 库中核心数据结构 Series 和 DataFrame 的四种创建方法,包括从列表、字典、标量和 NumPy 数组创建 Series,以及从字典、列表的列表、NumPy 数组和 Series 字典创建 DataFrame,通过示例详细说明了每种创建方式的具体应用。
849 67
|
9月前
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
124 3
|
10月前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
282 2
|
11月前
|
存储 数据挖掘 索引
Pandas数据结构:Series与DataFrame
本文介绍了 Python 的 Pandas 库中两种主要数据结构 `Series` 和 ``DataFrame`,从基础概念入手,详细讲解了它们的创建、常见问题及解决方案,包括数据缺失处理、数据类型转换、重复数据删除、数据筛选、排序、聚合和合并等操作。同时,还提供了常见报错及解决方法,帮助读者更好地理解和使用 Pandas 进行数据分析。
766 11
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
320 1
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
346 0

推荐镜像

更多