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月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
71 0
|
16天前
|
存储 数据挖掘 数据处理
掌握Pandas核心数据结构:Series与DataFrame的四种创建方式
本文介绍了 Pandas 库中核心数据结构 Series 和 DataFrame 的四种创建方法,包括从列表、字典、标量和 NumPy 数组创建 Series,以及从字典、列表的列表、NumPy 数组和 Series 字典创建 DataFrame,通过示例详细说明了每种创建方式的具体应用。
113 67
|
2天前
|
存储 数据挖掘 索引
Pandas数据结构:Series与DataFrame
本文介绍了 Python 的 Pandas 库中两种主要数据结构 `Series` 和 ``DataFrame`,从基础概念入手,详细讲解了它们的创建、常见问题及解决方案,包括数据缺失处理、数据类型转换、重复数据删除、数据筛选、排序、聚合和合并等操作。同时,还提供了常见报错及解决方法,帮助读者更好地理解和使用 Pandas 进行数据分析。
28 10
|
16天前
|
存储 数据挖掘 索引
Pandas Series 和 DataFrame 常用属性详解及实例
Pandas 是 Python 数据分析的重要工具,其核心数据结构 Series 和 DataFrame 广泛应用。本文详细介绍了这两种结构的常用属性,如 `index`、`values`、`dtype` 等,并通过具体示例帮助读者更好地理解和使用这些属性,提升数据分析效率。
34 4
|
1月前
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
47 2
Pandas 数据结构 - DataFrame
|
1月前
|
索引 Python
Pandas 数据结构 - Series
10月更文挑战第26天
37 2
Pandas 数据结构 - Series
|
28天前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
29天前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
41 2
|
28天前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南