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的基本操作介绍完毕。


相关文章
|
5天前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
20 0
|
6天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by=&#39;A&#39;, ascending=False)`。`rank()`函数用于计算排名,如`df[&#39;A&#39;].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=[&#39;A&#39;, &#39;B&#39;], ascending=[True, False])`和分别对&#39;A&#39;、&#39;B&#39;列排名。
18 2
|
7天前
|
索引 Python
如何在Python中使用Pandas库进行季节性调整?
在Python中使用Pandas和Statsmodels进行季节性调整的步骤包括:导入pandas和seasonal_decompose模块,准备时间序列DataFrame,调用`seasonal_decompose()`函数分解数据为趋势、季节性和残差,可选地绘制图表分析,以及根据需求去除季节性影响(如将原始数据减去季节性成分)。这是对时间序列数据进行季节性分析的基础流程。
19 2
|
5天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
12 0
|
7天前
|
Python
如何使用Python的Pandas库进行数据缺失值处理?
Pandas在Python中提供多种处理缺失值的方法:1) 使用`isnull()`检查;2) `dropna()`删除含缺失值的行或列;3) `fillna()`用常数、前后值填充;4) `interpolate()`进行插值填充。根据需求选择合适的方法处理数据缺失。
41 9
|
9天前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
10 2
|
10天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
15 1
|
12天前
|
存储 数据挖掘 数据处理
Pandas数据结构详解:Series与DataFrame的奥秘
【4月更文挑战第16天】Pandas的Series和DataFrame是数据处理的核心工具。Series是一维标签化数组,支持各种数据类型,可通过索引便捷访问。DataFrame是二维表格型数据结构,适合存储和操作表格数据。两者提供丰富的统计方法和操作,如筛选、排序、分组聚合。它们之间可相互转换和交互,助力高效的数据分析。理解和掌握Series和DataFrame对于数据科学至关重要。
|
1月前
|
数据采集 存储 Web App开发
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
|
索引 Python
「python」DataFrame中loc、iloc、ix的区别
iloc,loc,ix的使用 在使用DataFrame数据类型的过程中,常要使用到iloc、loc、ix,总结一下三者的不同 import pandas as pd data = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}) data.
10265 2