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 numpy基本操作
图解Python numpy基本操作
|
1天前
|
数据采集 数据挖掘 Python
【Python DataFrame专栏】讲解DataFrame中缺失值的处理方法,包括填充、删除和插值技术。
【5月更文挑战第20天】在Python的Pandas库中处理DataFrame缺失值,包括查看缺失值(`isnull().sum()`)、填充(`fillna()`:固定值、前向填充、后向填充)、删除(`dropna()`:按行或列)和插值(`interpolate()`:线性、多项式、分段常数)。示例代码展示了这些方法的使用。
【Python DataFrame专栏】讲解DataFrame中缺失值的处理方法,包括填充、删除和插值技术。
|
1天前
|
数据可视化 数据挖掘 Python
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
【5月更文挑战第20天】本文介绍了使用Python的pandas、matplotlib和seaborn库进行数据可视化的步骤,包括创建示例数据集、绘制折线图、柱状图、散点图、热力图、箱线图、小提琴图和饼图。这些图表有助于直观理解数据分布、关系和趋势,适用于数据分析中的探索性研究。
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
|
1天前
|
大数据 Python
【Python DataFrame专栏】DataFrame内存管理与优化:大型数据集处理技巧
【5月更文挑战第20天】本文介绍了使用Python的pandas库优化DataFrame内存管理的六个技巧:1) 查看DataFrame内存占用;2) 使用高效数据类型,如`category`和`int32`;3) 仅读取需要的列;4) 分块处理大数据集;5) 利用`inplace`参数节省内存;6) 使用`eval()`和`query()`进行快速筛选。这些方法有助于处理大型数据集时提高效率。
【Python DataFrame专栏】DataFrame内存管理与优化:大型数据集处理技巧
|
1天前
|
数据可视化 数据挖掘 数据处理
进阶 pandas DataFrame:挖掘高级数据处理技巧
【5月更文挑战第19天】本文介绍了Pandas DataFrame的高级使用技巧,包括数据重塑(如`pivot`和`melt`)、字符串处理(如提取和替换)、日期时间处理(如解析和时间序列操作)、合并与连接(如`merge`和`concat`),以及使用`apply()`应用自定义函数。这些技巧能提升数据处理效率,适用于复杂数据分析任务。推荐进一步学习和探索Pandas的高级功能。
|
1天前
|
数据采集 存储 数据挖掘
Python DataFrame初学者指南:轻松上手构建数据表格
【5月更文挑战第19天】本文是针对初学者的Pandas DataFrame指南,介绍如何安装Pandas、创建DataFrame(从字典或CSV文件)、查看数据(`head()`, `info()`, `describe()`)、选择与操作数据(列、行、缺失值处理、数据类型转换、排序、分组聚合)以及保存DataFrame到CSV文件。通过学习这些基础,你将能轻松开始数据科学之旅。
|
1天前
|
数据采集 数据可视化 数据挖掘
Python DataFrame 中的异常值检测与处理
【5月更文挑战第19天】在数据分析中,异常值检测与处理至关重要,因为它可能显著影响结果。常用检测方法包括统计指标(如均值和标准差)及箱线图。当发现异常值时,可选择删除、修正或标记。删除直接但可能导致数据量减少;修正如用中位数替换;标记则便于后续分析。实际应用中,需根据数据特性和分析目标选择合适方法,并可能结合多种方式判断。异常值处理能提升数据质量和分析可靠性。
25 2
|
1天前
|
存储 数据挖掘 数据处理
【Python DataFrame 专栏】优化 DataFrame 性能:提升数据处理效率的秘诀
【5月更文挑战第19天】优化 Python DataFrame 性能的关键点包括:选择合适的数据类型以节省内存,避免重复计算,利用向量化操作,考虑使用 `iterrows` 或 `itertuples` 迭代,优化索引以及借助 `Cython` 或 `Numba` 加速代码执行。通过这些策略,能提升数据处理效率,应对大规模数据挑战。
【Python DataFrame 专栏】优化 DataFrame 性能:提升数据处理效率的秘诀
|
1天前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】深入探索 pandas DataFrame:高级数据处理技巧
【5月更文挑战第19天】在 Python 数据分析中,pandas DataFrame 是核心工具。本文介绍了几个高级技巧:1) 横向合并 DataFrame;2) 数据分组与聚合;3) 处理缺失值;4) 数据重塑;5) 条件筛选;6) 使用函数处理数据。掌握这些技巧能提升数据处理效率和分析深度,助你更好地发掘数据价值。
【Python DataFrame 专栏】深入探索 pandas DataFrame:高级数据处理技巧
|
1天前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
【5月更文挑战第19天】本文介绍了Python数据分析中的核心概念——DataFrame,通过导入`pandas`库创建并操作DataFrame。示例展示了如何构建数据字典并转换为DataFrame,以及进行数据选择、添加修改列、计算统计量、筛选和排序等操作。DataFrame适用于处理各种规模的表格数据,是数据分析的得力工具。掌握其基础和应用是数据分析之旅的重要起点。
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格