音无结弦之时,天使跃动之心。立于浮华之世,奏|

次林梦叶

园龄:3年3个月粉丝:22关注:3

Pandas

image

from pixiv


Pandas

Creating, Reading and Writing

pandas中有两类实体类: the DataFrame and the Series.

  • DataFrame
    A DataFrame is a table.
    image

  • Series
    A Series, by contrast, is a sequence of data values.
    image

一般我们在读取的时候都是用DataFrame类进行装载数据
image

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中的列标签:
image


Indexing, Selecting & Assigning

我们能够通过DataFrame中的"attribute"(即可以看出每一列的key值),来访问一整列:
image

Indexing in pandas

通过iloc函数可以实现利用数值下标进行访问数据
image


通过loc函数可以实现利用attribute和条件进行访问数据
image
image
image

df.points.idxmax(),idxmax()函数可以查找处值最大的索引是什么

Assigning data

image

我们可以通过赋值单个数值进行整列自动赋值
也可以给出列表进行每行赋值

Summary Functions and Maps

Summary functions

我们可以使用describe()函数查看属性的描述性统计

image

当然上述describe()的值我们也可以单个拿出来,如:reviews.points.mean()

对数据进行统计展示:
image

Maps

map()函数可以对Series实体对象中的值按照给出的函数进行处理
image


而apply()函数则是对DataFrame实体对象的值按照给出的函数进行处理
image

需要注意的是上述操作并不改变原值,而是只是返回处理完后的新值而已


Grouping and Sorting

Groupwise analysis

groupby()函数有点像数据库中的group by,能够根据给定的属性进行分组,然后可以对每组进行集中操作,并给出各组处理后的结果

image

如上,首先就是对原始的DataFrame对象根据points进行分组(注意分完组后DataFrame对象被分成了points不同的DataFrame对象),然后对各个组进行取points属性的操作,再进行统计
分组可以简单理解为原来DataFrame中的行,只要符合points属于某个值就被分到某个组中去



还可以对组进行apply()
image

可以对组进行执行多个函数:
image

Multi-indexes

在进行分组后输出的DataFrame中的下标并不是我们之前见过的数值下标了:

image

仔细看红框中的内容,发现其将我们分组的数据作为下标了
打印出下标的类型
image


当然我最常使用的还是希望分组后,最为分组依据的数据还在,而且下标也是常见的数值下标
可以通过reset_index()函数,其返回一个新的DataFrame对象

image


Sorting

image
image

默认升序排序
sort_index()根据下标排序

image

多指标排序


Data Types and Missing Values

Dtypes

image
image

我们可以通过atype()函数更改数据类型
image

Missing data

image

image

可以看到判断是否是null()有多种不同写法,我们还可以用notnull()进行判断

同时我们可以通过一些方法替换掉NaN值

  • fillna()
    image
  • replace()
    image

Renaming and Combining

Renaming

rename()函数可以帮助我们改变原先数据集中不合理的列名称
image

rename_axis()同时我们还可以为index设置名称
image

还可以为下标的值设置名称:
image


Combining

  • concat()
    image

默认是按照axis=0进行连接,即按照0轴大小变化的方向进行连接
(其实你reshape会看到如(3,4)这样的输出,其中从左到右依次为0,1....轴,按照0轴大小变化的方向,其实就是要改变3这个数)

  • join()
    image

join() lets you combine different DataFrame objects which have an index in common.
即join是按照下标相同的行进行拼接
这个过程可以想象成一个DataFrame for循环他所有的行,然后每次拿出这个行的下标与另一个DataFrame的每行的下标进行对比,相同则进行行拼接

image

如何给pd的DataFrame添加一行数据

  • 通过loc
    image

  • 通过concat
    image

本文作者:次林梦叶

本文链接:https://www.cnblogs.com/cilinmengye/p/17779294.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   次林梦叶  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起