Pandas
Pandas
Creating, Reading and Writing
pandas中有两类实体类: the DataFrame and the Series.
-
DataFrame
A DataFrame is a table.
-
Series
A Series, by contrast, is a sequence of data values.
一般我们在读取的时候都是用DataFrame类进行装载数据
index_col=0这个参数表示我们用读到的数据第一列作为下标(pandas读取数据时会自动为每行设定从0开始不断累加的下标)
我们还可以通过set_index()函数指定某列作为下标使用:
pandas
中的 set_index()
方法用于设置DataFrame中的一个或多个列作为索引列。它的语法如下:
DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
参数说明:
keys
: 用于设置为索引的列名或列名的列表。drop
: 默认为True,如果将要设置为索引的列也保留在DataFrame中,可以将其设置为False。append
: 默认为False,如果要将多个索引列附加到现有索引上,可以将其设置为True。inplace
: 默认为False,如果设置为True,将修改原始DataFrame,否则将返回一个新的DataFrame。verify_integrity
: 默认为False,如果设置为True,则在设置索引时检查新索引的唯一性。
示例:
import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6]} df = pd.DataFrame(data) # 将列'A'设置为索引 df.set_index('A', inplace=True) # 如果要将多个列设置为索引,可以传入列名的列表 df.set_index(['A', 'B'], inplace=True) # 如果要在现有索引的基础上添加一个新的索引列,可以使用append参数 df.set_index('C', append=True, inplace=True)
上述示例演示了如何使用set_index()
方法在pandas
中设置索引列。根据需要,你可以根据列的名称或名称的列表来设置索引,并根据其他参数来调整设置的方式。
读取DataFrame中的列标签:
Indexing, Selecting & Assigning
我们能够通过DataFrame中的"attribute"(即可以看出每一列的key值),来访问一整列:
Indexing in pandas
通过iloc函数可以实现利用数值下标进行访问数据
通过loc函数可以实现利用attribute和条件进行访问数据
df.points.idxmax(),idxmax()函数可以查找处值最大的索引是什么
Assigning data
我们可以通过赋值单个数值进行整列自动赋值
也可以给出列表进行每行赋值
Summary Functions and Maps
Summary functions
我们可以使用describe()函数查看属性的描述性统计
当然上述describe()的值我们也可以单个拿出来,如:reviews.points.mean()
对数据进行统计展示:
Maps
map()函数可以对Series实体对象中的值按照给出的函数进行处理
而apply()函数则是对DataFrame实体对象的值按照给出的函数进行处理
需要注意的是上述操作并不改变原值,而是只是返回处理完后的新值而已
Grouping and Sorting
Groupwise analysis
groupby()函数有点像数据库中的group by,能够根据给定的属性进行分组,然后可以对每组进行集中操作,并给出各组处理后的结果
如上,首先就是对原始的DataFrame对象根据points进行分组(注意分完组后DataFrame对象被分成了points不同的DataFrame对象),然后对各个组进行取points属性的操作,再进行统计
分组可以简单理解为原来DataFrame中的行,只要符合points属于某个值就被分到某个组中去
还可以对组进行apply()
可以对组进行执行多个函数:
Multi-indexes
在进行分组后输出的DataFrame中的下标并不是我们之前见过的数值下标了:
仔细看红框中的内容,发现其将我们分组的数据作为下标了
打印出下标的类型
当然我最常使用的还是希望分组后,最为分组依据的数据还在,而且下标也是常见的数值下标
可以通过reset_index()函数,其返回一个新的DataFrame对象
Sorting
默认升序排序
sort_index()根据下标排序
多指标排序
Data Types and Missing Values
Dtypes
我们可以通过atype()函数更改数据类型
Missing data
可以看到判断是否是null()有多种不同写法,我们还可以用notnull()进行判断
同时我们可以通过一些方法替换掉NaN值
- fillna()
- replace()
Renaming and Combining
Renaming
rename()函数可以帮助我们改变原先数据集中不合理的列名称
rename_axis()同时我们还可以为index设置名称
还可以为下标的值设置名称:
Combining
- concat()
默认是按照axis=0进行连接,即按照0轴大小变化的方向进行连接
(其实你reshape会看到如(3,4)这样的输出,其中从左到右依次为0,1....轴,按照0轴大小变化的方向,其实就是要改变3这个数)
- join()
join() lets you combine different DataFrame objects which have an index in common.
即join是按照下标相同的行进行拼接
这个过程可以想象成一个DataFrame for循环他所有的行,然后每次拿出这个行的下标与另一个DataFrame的每行的下标进行对比,相同则进行行拼接
如何给pd的DataFrame添加一行数据
-
通过loc
-
通过concat
本文作者:次林梦叶
本文链接:https://www.cnblogs.com/cilinmengye/p/17779294.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人